在网上没有找到合适的代码,自己写了一段,还有待优化。。。
直接上代码
/// <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; }