从WPF RichTextBox中的行号计算ScrollToVerticalOffset的偏移量

Chr*_*ian 5 wpf textbox richtextbox scrollviewer offset

我想将a的内容移动到内容的RichTextBox特定行.该RichTextBox提供方法ScrollToVerticalOffset从嵌入ScrollViewer.该方法记录在MSDN中,但未指定名为offset的参数的度量单位.类型是double.

a的VerticalOffset属性TextBox记录为与设备无关的单位(每单位1/96英寸).

所以我试着从字体大小计算偏移量.字体大小以像素为单位.得到的公式是

offset = fontSize * 96 / 72  *  lineNumber;
Run Code Online (Sandbox Code Playgroud)

但这远远落后于所需的线.现在我正在使用这个计算:

offset = fontSize * lineNumber;
Run Code Online (Sandbox Code Playgroud)

它是否正确?

Beh*_*zad 2

确实,问这个问题已经过去很长时间了,但仍然没有找到正确的答案!

我现在使用这段代码,这对我来说真的很有好处:

var offset = (lineNumber * (fontSize + 2)) - richTextBox.ActualHeight / 2;
richTextBox.ScrollToVerticalOffset(offset);
Run Code Online (Sandbox Code Playgroud)

如果您知道比这种方式更好的解决方案,请帮助我。