在WPF RichTextBox中根据行号计算ScrollToVerticalOffset的偏移量

问题描述:

我想将RichTextBox的内容移动到特定的内容行。 RichTextBox提供了来自嵌入式ScrollViewer的方法ScrollToVerticalOffset。该方法记录在MSDN中,但名为offset的参数的测量单位不是specified。该类型是double在WPF RichTextBox中根据行号计算ScrollToVerticalOffset的偏移量

A VerticalOffsetTextBox的财产记录为独立于设备的单位(每单位1/96英寸)。

所以我试图计算字体大小的偏移量。字体大小以像素为单位。由此产生的公式是

offset = fontSize * 96/72 * lineNumber; 

但是,这种跳转方式背后所需的线。现在我正在使用这个计算:

offset = fontSize * lineNumber; 

这是正确的吗?

的确,从询问这个问题经过很长一段时间,但仍然没有找到正确的答案!

我现在用这个代码,这对我来说是很好的真的:

var offset = (lineNumber * (fontSize + 2)) - richTextBox.ActualHeight/2; 
richTextBox.ScrollToVerticalOffset(offset); 

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

+0

您的计算听起来不错。但目前我无法验证计算。 – Christian 2015-08-21 10:23:50