C# WPF:如何在TextBlock中获取字符坐标?

C# WPF:如何在TextBlock中获取字符坐标?,c#,.net,wpf,custom-controls,C#,.net,Wpf,Custom Controls,我在没有XAML的代码中自定义了TextBlock。我现在需要做的一件事是获取TextBlock中包含的特定字符的坐标(例如,获取该字符相对于TextBlock左上角的Rect)。我怎样才能开始做这项工作?我想我需要实现一些自定义方法,比如 Rect TextBlock.GetRectForCharacter(int-charIndex); 有什么办法可以做到这一点吗?请注意,TextBlock也可以是多行的。以前遇到过类似的问题,我能想出的最佳解决方案是根据字体大小和字符数进行计算。请提供一

我在没有XAML的代码中自定义了TextBlock。我现在需要做的一件事是获取TextBlock中包含的特定字符的坐标(例如,获取该字符相对于TextBlock左上角的Rect)。我怎样才能开始做这项工作?我想我需要实现一些自定义方法,比如

Rect TextBlock.GetRectForCharacter(int-charIndex);

有什么办法可以做到这一点吗?请注意,TextBlock也可以是多行的。

以前遇到过类似的问题,我能想出的最佳解决方案是根据字体大小和字符数进行计算。请提供一些代码示例,让我开始并帮助我解决问题?据我所知,
GetRectForCharacter
仅适用于
TextBox
。但是您可以使用样式和参数
IsReadOnly=“True”
创建一个
TextBox
,并将其设置为
TextBlock