我的风景:我正在写一个非常简单的文本编辑器,突出显示digitis,在一些关键字和特殊字符。现在我正在实施行号,为此,我使用的是ListView
,即更新为每个新行添加了问题,即当我使用光标向下滚动时,行数未更新,然后如果我跳到30行,listView
保持它在第10行,例如因为这个原因,我正在寻找一种方法来滚动坐标RichTextBox
sincronize滚动listView。如何获取RichTextBox的滚动坐标?
不同的解决方案来解决它非常赞赏。我希望这很清楚。提前。
我的风景:我正在写一个非常简单的文本编辑器,突出显示digitis,在一些关键字和特殊字符。现在我正在实施行号,为此,我使用的是ListView
,即更新为每个新行添加了问题,即当我使用光标向下滚动时,行数未更新,然后如果我跳到30行,listView
保持它在第10行,例如因为这个原因,我正在寻找一种方法来滚动坐标RichTextBox
sincronize滚动listView。如何获取RichTextBox的滚动坐标?
不同的解决方案来解决它非常赞赏。我希望这很清楚。提前。
而不是开发自己的文本编辑器,你可以试试SharpDevelop的编辑器。您不必完全安装它。只要下载它的源和编译仅ICSharpCode.AvalonEdit
它有一个属性ShowLineNumbers
:)
嗯,它看起来不错,我会尝试。 – Jack
TextPointer textPointer = MyRichTextBox.Document.ContentStart.GetPositionAtOffset(8);
if (textPointer != null)
{
MyRichTextBox.CaretPosition = textPointer;
MyRichTextBox.Focus();
MyRichTextBox.Selection.Select(MyRichTextBox.CaretPosition, MyRichTextBox.CaretPosition);
}
您在RichTextBox的滚动下来?你现在怎么得到行号? – Paparazzi
@BalamBalam:我设置了行号,并以此为基础:var textRange = new TextRange(TextInput.Document.ContentStart,TextInput.Document.ContentEnd); string [] lines = textRange.Text.Split('\ n');'并调用'.Length',然后:'for(int i = 1,count = lines.Length; i
Jack