Wpf 如何高效地绘制轮廓文本?

Wpf 如何高效地绘制轮廓文本?,wpf,drawing,formatted-text,Wpf,Drawing,Formatted Text,目前,我正在使用FormattedText.BuildGeometry()获取文本的几何图形 首先,我用较粗的笔绘制文本几何体,然后在上面绘制文本。最后的效果是文本似乎有一个大纲 我的问题是BuildGeometry()方法非常耗时。有没有其他方法可以有效地绘制文本大纲?几年前,当我在使用J2ME时,我使用此方法使文本具有一些大纲(伪代码,但可以轻松地更新为WPF): (假设要在x、y坐标处绘制文本) 我认为绘制文本的速度可能比使用BuildGeometry快4倍。轮廓可以是可变宽度;好主意。你

目前,我正在使用FormattedText.BuildGeometry()获取文本的几何图形

首先,我用较粗的笔绘制文本几何体,然后在上面绘制文本。最后的效果是文本似乎有一个大纲


我的问题是BuildGeometry()方法非常耗时。有没有其他方法可以有效地绘制文本大纲?

几年前,当我在使用J2ME时,我使用此方法使文本具有一些大纲(伪代码,但可以轻松地更新为WPF):

(假设要在x、y坐标处绘制文本)


我认为绘制文本的速度可能比使用BuildGeometry快4倍。

轮廓可以是可变宽度;好主意。你还有什么建议吗?目前我唯一能想到的另一个选择是写你自己的效果来实现这一点,但这不会是微不足道的,或者至少尝试一下.Net的一个效果(它不是过时的)。如果您熟悉HLSL(或幸运地使用google),您可以将PixelShader与自定义HLSL程序一起使用。对不起,我帮不上更多的忙。
setColor(outlineColor)
drawText(x - 1, y, text)
drawText(x + 1, y, text)
drawText(x, y - 1, text)
drawText(x, y + 1, text)

setColor(textColor)
drawText(x, y, text)