我一直在寻找一种方法来为 WPF 中的某些文本创建大纲,以使其与背景更容易区分。我试图模仿的原始外观如下
您会注意到字体非常小,这使得这个问题非常困难。我发现所有控件和片段都是在字母中绘制轮廓而不是在它们周围,这使得这些控件在我的情况下是一个糟糕的选择。即使是像绘制阴影来伪造边框这样简单的事情也是不够的
我很好奇你是否知道一些可以通过在字母之外绘制轮廓来勾勒文本的控件,这使我可以使用小字体。或者你认为在游戏中经常使用的精灵字体是一个好方法吗?如果是这样,您可以建议任何库/控件吗?
暂时我想留下一个小片段,它帮助我创造了一个非常体面的结果,看起来像这样:
我TextBlock
在 a 中使用多个元素并按照ChrisF 的建议Canvas
覆盖它们。令人惊讶的是,这看起来比预期的要好,而且失真更少,因为我不必使用增加的字体大小。
<Canvas>
<TextBlock Text="{StaticResource TestString}" FontSize="18"
FontFamily="BigNoodleTitling" Canvas.Top="2" Canvas.Left="2" />
<TextBlock Text="{StaticResource TestString}" FontSize="18"
FontFamily="BigNoodleTitling" Canvas.Top="2" Canvas.Left="4" />
<TextBlock Text="{StaticResource TestString}" FontSize="18"
FontFamily="BigNoodleTitling" Canvas.Top="4" Canvas.Left="2" />
<TextBlock Text="{StaticResource TestString}" FontSize="18"
FontFamily="BigNoodleTitling" Canvas.Top="4" Canvas.Left="4" />
<TextBlock Text="{StaticResource TestString}" FontSize="18"
FontFamily="BigNoodleTitling" Canvas.Top="3" Canvas.Left="3"
Foreground="#de5f5f" />
</Canvas>
我仍然对替代解决方案感兴趣!