【问题标题】:White font with black border in XAMLXAML中带有黑色边框的白色字体
【发布时间】:2011-03-17 05:56:04
【问题描述】:

正如标题所说,我想要一个带有白色边框的黑色字体 在我的TextBox

如何实现?

干杯。

【问题讨论】:

  • 你的问题标题和正文正好相反​​。白边黑边还是黑边白边? :)
  • @Matt,是的,你是对的 :-) 没关系,想法可能是一样的 ;-)))
  • 同意 :-) 但是您是指字体中单个字母周围的边框,还是整个 TextBox 周围的边框?
  • @Matt,单个字母的边框。

标签: c# wpf silverlight fonts textbox


【解决方案1】:

查看 Blacklight 控件@http://blacklight.codeplex.com/。特别注意http://mightymeaty.members.winisp.net/blacklight.silverlight/上的示例| Visual Controls | TEXT | Stroke Text Block (Alpha)。

【讨论】:

  • @Jamie:您是否曾经能够实现/使用 Blacklight 来满足这种需求?
  • 我最终没有使用 Blacklight,但是在查看代码时我发现了适合我的解决方案。因此,我可以认为您的回答很好。 :)
【解决方案2】:

可以将文本转换为具有高级格式的几何对象,例如单个字母的轮廓和填充 - 您可以了解有关如何执行此操作的更多信息here

话虽如此,但我不确定这在 TextBox 中是否可行。它可能仅适用于只读文本(TextBlock)。

编辑

This blog post 在 TextBox 中展示了一些高级字体渲染技术。它可能对你很方便。

【解决方案3】:

为此,我总是将字体颜色设置为白色并在文本上设置 DropShadow 效果。

接下来,调整深度、角度(设置为 0 或其他值)和模糊,你应该能够得到你想要的。

【讨论】:

  • 好的,但是如何对 FormattedText 应用 DropShadow 效果?
【解决方案4】: