我正在尝试获取在 richtextbox 中键入的所有字符的字符 rect。从 MyRichTextBox.Document.ContentStart 文本指针开始,我使用以下代码推进每个字符
currentPointer = currentPointer.GetNextInsertionPosition(LogicalDirection.Forward)
并使用以下代码检索“字符”矩形
currentPointer.GetCharacterRect(LogicalDirection.Forward)
但看起来,对于从上面这段代码返回的任何文本指针,矩形的宽度始终为 0。现在我可以根据前一个字符矩形和当前字符矩形之间的面积来计算字符矩形,但是当发生自动换行时,这会导致问题。
有什么方法可以从富文本框的 GetCharacterRect() 函数中获取非零宽度?
编辑
来自微软的内容here显示相同。有人知道测量字符矩形的替代方法吗?
最佳答案
GetCharacterRect
只返回一个表示相关字符前缘的矩形(即,宽度为零,但高度和位置准确)——而不是“包装矩形”...尽管如果这就是您所追求的,您可以捕获两个连续字符的前缘并进行计算。
关于c# - WPF RichTextBox 获取字符矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6593619/