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;
        }
原文地址:https://www.cnblogs.com/tianciliangen/p/8809794.html