从TextPointer中检索CharOffset

时间:2013-12-17 12:11:32

标签: c#

我在RichTextBox中有这个序列:A B AC A DEF

我希望用户将鼠标悬停在序列上,让我知道他们正在查看序列中的第N个字符。如果用户将鼠标悬停在C上,我应该得到4。

我已经开始使用此代码了:

Point mousePosition = Mouse.GetPosition(richTextBox);
TextPointer position = richTextBox.GetPositionFromPoint(mousePosition, true);
int offset = richTextBox.Document.ContentStart.GetOffsetToPosition(position);

但是,我不能使用GetOffsetToPosition(position);在richTextBox上,因为文本包含格式,因此偏移量与我期望的值不匹配。例如,由于B上的格式化而不是C返回4,它可能返回8。我想获得忽略格式化的偏移量。

我可以从调试中看到TextPointer包含成员变量“CharOffset”,它匹配我想要的位置返回的值。但是,就我所见,我无法访问它。有没有一种方法可以在某个我错过的地方访问这个值,或者我必须采取另一种方式吗?

0 个答案:

没有答案