0

有谁知道为什么 DropShadowBitmapEffect 和 EmbossBitmapEffect 不能在 WPF 中的 TextBlock(不是 textBOX)上工作?OuterGlow、Blur 和 Bevel 似乎工作正常。


透明背景画笔显然不是答案,因为您可以使用空背景画笔获得阴影。阴影的默认柔和度为 50%,如果您的字体较小,则柔和度会过多地消散阴影。在 39% 的柔和度附近似乎有一个急剧下降(此时阴影或多或少地消失了)。尝试将其设置为 0,然后慢慢向上移动,直到找到一个仍然显示阴影的数字。


另一个注意事项:柔软度绝对是一个因素,但请注意,在 Xaml 中,有效值实际上只有 0 到 1,但在 Blend 中,它显示为高达 100 的百分比。因此,如果您在 Xaml 中将值设置为 100,它会完全消散。


背景笔刷 = 透明解决方案仍可用于浮雕效果

4

2 回答 2

2

位图效果通过查看渲染后的像素并对它们运行标准图像处理来工作。它应该只取决于像素的颜色。我想知道他们的算法是否不适用于白色。尝试更改颜色以查看是否有效果 - 如果有效果,您可能想尝试在下方放置一个黑色面板,并在其上设置阴影。

编辑:提问者找到了答案

“感谢您为我指明正确的总体方向。重要的是文本的颜色或 DropShadow,需要的是使 TextBlock 上的背景画笔成为透明画笔 (Alpha = 0) 而不是 null。 "

于 2008-09-21T18:52:25.723 回答
1

重要的旁注:你不应该再使用 BitmapEffects 了。使用基于 .net 3.5 SP1 中引入的 ShaderModel 效果的 Effect 属性,它使用硬件渲染并且具有更好的性能。

更多信息

于 2008-09-21T23:53:54.983 回答