【问题标题】:How to get TextPointers of added words in richTextBox?如何获取richTextBox中添加的单词的TextPointers?
【发布时间】:2018-12-03 17:24:57
【问题描述】:

我需要在 WPF 中的 RichTextBox 中获取添加单词的开头和结尾的 TextPointer。任何人都可以帮助我吗?例如,我有属性 StartPointerEndPointer 的 Word 类,并且只有字符串中的 Word。我从文件中读取数据并写入txt。添加单词时,我想设置StartPointer,添加后我想获取单词结尾的指针。感谢您的帮助。

【问题讨论】:

  • 嗨。欢迎来到 StackOverflow!很难理解你的问题。你能分享一些你的代码和例外结果吗?
  • 这是我的 word 属性:public Word word { get; set; } public TextPointer StartPointer { get; set; } public TextPointer EndPointer { get; set; } 我从文件中读取文本并将其写入richTextBox。例如文本是 hello world。我加载第一个单词“你好”,我想得到这个添加的单词的文本重新调整,StartPointer 和 EndPointer
  • 不要使用 cmets 添加到您的问题中。 Edit 问题并将这些细节放入其中,使其尽可能完整。
  • @Kamilex97 你能看看问题stackoverflow.com/questions/1454440/…吗?如果这是您要问的,那么可以将其标记为重复。

标签: c# .net wpf richtextbox


【解决方案1】:

RichTextBox 具有名为 CaretPosition 的属性。
您可以从中获取DocumentEndDocumentStart TextPointers。

如果您在 xaml 中声明了RichTextBox,那么您可以从后面的代码中访问它:

<RichTextBox Name="MyRichTextBox"/>

public MainWindow()
{
    InitializeComponent();
    var startPointer = MyRichTextBox.CaretPosition.DocumentStart;
    var endPointer = MyRichTextBox.CaretPosition.DocumentEnd;
}

【讨论】:

  • 我知道,但是当我这样做时:var startPointer = MyRichTextBox.CaretPosition.DocumentEnd; rtb.AppendText("text); var endPointer = MyRichTextBox.CaretPosition.DocumentEnd; var textRange = new TextRange(startPointer,endPointer) textRange 的文本始终为空;/
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-08
  • 1970-01-01
  • 2016-02-21
  • 2015-09-22
  • 2016-10-07
  • 1970-01-01
  • 2018-06-07
相关资源
最近更新 更多