多行WPF FormattedText中特定字符的坐标

如何获取多行WPF FormattedText中特定字符的位置(xy坐标)?

我的文字可以包含斜体部分,粗体部分,不同的字体,不同的字体大小,不同的比对等等。我需要得到第30个字符的坐标,这可能是第3行。

通过使用Geometry中的Children(单词)的子(字母),我可以从FormattedText(BuildGeometry)构建一些半工作技巧,但这并不总是有效,因为一些字形合并在一个单个几何体(例如“fi”:仅一个几何体)。

FormattedText.BuildHighlightGeometry ,方法(Point,Int32,Int32)就是这样做的。