获取呈现的文字字母尺寸
Get rendered text letters dimensions
我有一个非常简单的设置 - 我有 string
、字体和字体大小准备就绪。我想将它渲染到 Silverlight WriteableBitmap
.
有一个问题 - 我希望能够区分渲染文本中的字母。理想情况下,我希望每个呈现的字母都有一个 System.Windows.Rect
。
问题出在 Silverlight 的 API,它缺少所有有用的东西,例如 Graphics.MeasureString
,我本可以用它来单独测量字母。
我有什么足够的选择来在代码隐藏中获取字母的大小?
这是我自己想出来的。该解决方案速度缓慢且远非完美,但是,嘿,它有效!
想法是多次渲染文本,一次添加一个字母,并找出当前和之前 TextBlock
宽度之间的差异。
因此,例如,如果文本是 "ab"
,我们首先渲染 "a"
并获取其长度。然后我们渲染"ab"
,找到差异,应该是渲染后的大小"b"
.
我有一个非常简单的设置 - 我有 string
、字体和字体大小准备就绪。我想将它渲染到 Silverlight WriteableBitmap
.
有一个问题 - 我希望能够区分渲染文本中的字母。理想情况下,我希望每个呈现的字母都有一个 System.Windows.Rect
。
问题出在 Silverlight 的 API,它缺少所有有用的东西,例如 Graphics.MeasureString
,我本可以用它来单独测量字母。
我有什么足够的选择来在代码隐藏中获取字母的大小?
这是我自己想出来的。该解决方案速度缓慢且远非完美,但是,嘿,它有效!
想法是多次渲染文本,一次添加一个字母,并找出当前和之前 TextBlock
宽度之间的差异。
因此,例如,如果文本是 "ab"
,我们首先渲染 "a"
并获取其长度。然后我们渲染"ab"
,找到差异,应该是渲染后的大小"b"
.