我试图让用户在 SfRichTextBoxAdv 中进行选择并将这些选择(文本范围)保存到集合中。问题是我还希望文本范围在它们之前添加或删除文本时更新它们的开始/结束位置。即:如果在文本范围之前添加文本并将其向前推,则开始/结束索引需要相应地递增。
在常规的 WPF RichTextBox 中,我能够使用 TextRange 做到这一点。使用 TextRange,我可以将选定的文本保存为 TextRange 变量。然后,如果在 TextRange 之前添加一些文本并在文档中将其向前推送,则开始和结束 TextPointer 属性会相应更改。
使用 SfRichTextBoxAdv,当我将所选文本保存为 SelectionAdv 变量时,每次光标在文档中移动到当前光标位置(当前选择)时,该变量都会更新。所以我什至不能将选择存储在变量中,因为它会随着光标在文档中的移动而一直变化。我尝试使用两个 TextPosition 变量存储选择:
var start = richTextBoxAdv.Selection.Start;
var end = richTextBoxAdv.Selection.End;
但是当光标移动时,它们仍然会更新自己,就像 SelectionAdv 一样。