我想将RichTextBox
的内容移动到内容的特定行。 RichTextBox
提供了嵌入式ScrollToVerticalOffset
中的方法ScrollViewer
。该方法记录在MSDN中,但名为offset的参数的度量单位不是specified。类型为double
。
TextBox
的{{3}}属性记录为与设备无关的单位(每单位1/96英寸)。
所以我尝试从字体大小计算偏移量。字体大小以像素为单位。得到的公式是
offset = fontSize * 96 / 72 * lineNumber;
但这远远落后于所需的路线。现在我正在使用这个计算:
offset = fontSize * lineNumber;
这是对的吗?
答案 0 :(得分:0)
TextPointer myTextPointer1 = Paragraph.ContentStart.GetPositionAtOffset(20);
TextPointer myTextPointer2 = Paragraph.ContentEnd.GetPositionAtOffset(-10);
RichTextBox.Selection.Select(myTextPointer1, myTextPointer2);
DependencyObject currObj = RichTextBox.CaretPosition.Parent;
FrameworkElement fe = currObj as FrameworkElement;
if (fe != null)
{
fe.BringIntoView();
}
else
{
FrameworkContentElement fce = currObj as FrameworkContentElement;
if (fce != null)
{
fce.BringIntoView();
}
}