我正在尝试为在richtextbox中键入的所有字符获取rect字符。从MyRichTextBox.Document.ContentStart文本指针开始,我使用以下代码推进每个字符

currentPointer = currentPointer.GetNextInsertionPosition(LogicalDirection.Forward)

并使用以下代码检索“字符” rect
currentPointer.GetCharacterRect(LogicalDirection.Forward)

但是看起来,对于从上面的代码段返回的任何文本指针,rect的宽度始终为0。现在,我能够根据上一个字符rect和当前字符rect之间的面积来计算字符rect,但这会导致自动换行时出现问题。

有什么办法可以通过富文本框的GetCharacterRect()函数获得非零宽度?

编辑

Microsoft here的内容显示相同。有人知道替代字符rect的方法吗?

最佳答案

GetCharacterRect只是返回一个代表所讨论字符的前边缘的矩形(即,零宽度,但高度和位置准确)-不是“包装矩形” ...尽管这就是您要的,但是您可以捕获两个连续字符的前沿,然后进行数学运算。

关于c# - WPF RichTextBox GetCharacterRect,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6593619/

10-12 15:28