WPF richTextBox 滚动到某项

Posted 天王星天

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF richTextBox 滚动到某项相关的知识,希望对你有一定的参考价值。

 

在网上没有找到合适的代码,自己写了一段,还有待优化。。。

 

直接上代码

 

/// <summary>
        /// 滚动到某项
        /// </summary>
        /// <param name="sparent"></param>
        private void ScrollItem(Block sparent)
        {
            int count = richTextBox1.Document.ContentStart.GetOffsetToPosition(richTextBox1.Document.ContentEnd);//获取整个textbox中文本的高度
            int s1 = richTextBox1.Document.ContentStart.GetOffsetToPosition(sparent.ContentEnd);//项block到文档起点的高度
            int s2 = sparent.ContentEnd.GetOffsetToPosition(richTextBox1.Document.ContentEnd);//项block到文档结束点的高度 

            double h1 = (double)scHeight / count * s1;// (int)((scheight / 100) * s1);//滚动条高度平分,提取滚动条位置点

            richTextBox1.ScrollToVerticalOffset(h1 - 60);
        }



        private void richTextBox1_ScrollChanged(object sender, ScrollChangedEventArgs e)
        {
            scHeight = e.ExtentHeight;
        }

 

以上是关于WPF richTextBox 滚动到某项的主要内容,如果未能解决你的问题,请参考以下文章

WPF RichTextBox 如何滚动到光标所在位置滚动条操作

WPF RichTextBox滚动到TextPointer

wpf中如何让richtextbox的滚动条显示

如何在 WPF 应用程序的 RichTextBox 中记录时间?

在 RichTextBox WPF 中设置文化/语言

禁用 RichTextBox 中的滚动(c#)