2012-01-26 59 views
0

我的风景:我正在写一个非常简单的文本编辑器,突出显示digitis,在一些关键字和特殊字符。现在我正在实施行号,为此,我使用的是ListView,即更新为每个新行添加了问题,即当我使用光标向下滚动时,行数未更新,然后如果我跳到30行,listView保持它在第10行,例如因为这个原因,我正在寻找一种方法来滚动坐标RichTextBox sincronize滚动listView。如何获取RichTextBox的滚动坐标?

不同的解决方案来解决它非常赞赏。我希望这很清楚。提前。

+0

您在RichTextBox的滚动下来?你现在怎么得到行号? – Paparazzi

+0

@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

回答

0

而不是开发自己的文本编辑器,你可以试试SharpDevelop的编辑器。您不必完全安装它。只要下载它的源和编译仅ICSharpCode.AvalonEdit

它有一个属性ShowLineNumbers :)

+0

嗯,它看起来不错,我会尝试。 – Jack

0
TextPointer textPointer = MyRichTextBox.Document.ContentStart.GetPositionAtOffset(8); 
if (textPointer != null) 
{ 
    MyRichTextBox.CaretPosition = textPointer; 

    MyRichTextBox.Focus(); 
    MyRichTextBox.Selection.Select(MyRichTextBox.CaretPosition, MyRichTextBox.CaretPosition); 
}