DropShadowBitmapEffect在TextBlock上不起作用
时间:2020-03-06 14:30:45 来源:igfitidea点击:
有谁知道为什么DropShadowBitmapEffect和EmbossBitmapEffect无法在WPF中的TextBlock(不是textBOX)上工作? OuterGlow,Blur和Bevel似乎工作正常。
透明的背景笔刷显然不是答案,因为我们可以使用空的背景笔刷获得阴影。阴影的默认柔和度为50%,如果字体较小,柔和度会过多地消散阴影。柔软度似乎在39%左右急剧下降(此时阴影或者多或者少消失了)。尝试将其设置为0,然后慢慢向上移动,直到找到仍然显示阴影的数字。
还有一点需要注意:柔软度绝对是一个因素,但是请注意,在Xaml中,有效值实际上仅为0到1,但是在Blend中,它显示为最高100%的百分比。因此,如果我们在Xaml中将值设置为100,它会完全消散。
背景画笔=透明溶液仍然可以起到浮雕效果
解决方案
位图效果通过查看后期渲染的像素并对其进行标准图像处理来工作。它应该仅取决于像素的颜色。我想知道他们的算法在白色方面效果不好。尝试更改颜色以查看是否有效果-如果有效果,则可能要尝试在其下设置了阴影的黑色面板下放置黑色面板。
编辑:发问者找到答案
"感谢我们将我指向正确的大致方向。与文本的颜色或者DropShadow无关紧要,需要的是将TextBlock上的背景画笔设置为透明画笔(Alpha = 0)而不是null。 "
重要的旁注:我们实际上不应再使用BitmapEffects。使用基于.net 3.5 SP1中引入的ShaderModel效果的Effect属性,它使用硬件渲染并具有更好的性能。
更多信息