【问题标题】:Outer Glow Effect for TextBlock in WinRTWinRT 中 TextBlock 的外发光效果
【发布时间】:2012-10-20 13:54:49
【问题描述】:

WinRT 没有OuterGlowBitmapEffect。那么,有什么方法可以在 WinRT 中显示TextBlock 的外发光效果?

【问题讨论】:

  • 您想对哪种类型的内容应用光晕?它是文本、矢量还是位图,是静态的还是非静态的?
  • 如果您不想使用 HTML 和 CSS,我会选择我发布的第二个选项,除非您需要支持多种字体和大小或文本段落。它需要对 WinRT 进行一些调整。

标签: c# .net vb.net xaml windows-runtime


【解决方案1】:

没有一种对 XAML 内容应用效果的好方法,WinRT 目前也缺少将 XAML 元素呈现为位图的方法,因此您主要使用不使用 XAML 的方法。

确保发光是必要的,并且您已经查看了适用于 Windows 8 应用程序的guidelines。 如果您确定需要它,这里有一些建议:

  • 对于简单的情况,您可以使用渐变或复制几何体来获得发光效果。

  • 将图形与已应用于您的应用的发光捆绑在一起,这显然不适用于完全动态的形状,但您可以对类似于我的回答 here 的文本执行此操作。

  • 使用 Direct2D 而非 XAML 并使用 Direct2D effectsSharpDX 提供 Direct2D 的绑定)

  • 如果您需要对位图应用光晕,您可以使用 WriteableBitmap 并自己应用光晕。 (WriteableBitmapEX 可能有用)

  • 使用 HTML 和 CSS 而不是 XAML,可能托管在 WebView 或整个应用程序中。

【讨论】:

  • 我必须在有明暗背景的图像上显示文本,所以我真的需要使用外发光效果。
  • 将黑色文本块放在白色文本块下并沿对角线移动会使文本可见,但如果您确实需要发光,则第二个和第三个选项将起作用。如果需要,我可以查看更新 WinRT 的代码。这在 HTML 中要简单得多,因为支持 text-shadow。
猜你喜欢
  • 2012-06-22
  • 1970-01-01
  • 1970-01-01
  • 2016-07-15
  • 1970-01-01
  • 1970-01-01
  • 2011-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多