c# - WPF RichTextBox 获取字符矩形

标签 c# wpf richtextbox flowdocument

我正在尝试获取在 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/

相关文章:

c# - 以 MVVM 方式导出 DataGrid

c# - Visual Studio 即时窗口 - 不允许使用 Lambda 表达式 - 是否有解决方法或替代方法?

c# - Kinect 中的握把控制

wpf - 为 UserControl 设置 Canvas.Top

javascript - 类似于 Facebook 评论框的富文本框

C# RichTextBox 彩色文本

c# - 富文本框如何在没有选择的情况下突出显示文本 block

c# - 如何在 DirectX 中绘制橡皮筋矩形?

c# - ObjectListview 未更改子项目复选框状态

wpf - 如何绑定(bind) RibbonComboBox 数据?