请注意下图中灰色面板中文本下面的1px高亮区。 WPF/Silverlight如何实现这一点?WPF/Silverlight文本效果
Valid XHTML http://www.iconpaper.org/preview/10012101b.jpg。
请注意下图中灰色面板中文本下面的1px高亮区。 WPF/Silverlight如何实现这一点?WPF/Silverlight文本效果
Valid XHTML http://www.iconpaper.org/preview/10012101b.jpg。
在Silverlight 3中,它被称为DropShadow效果。
例如,
<Border Height="300" Width="300" Background="Gray">
<Border.Effect>
<DropShadowEffect Opacity="0.34" ShadowDepth="9" Direction="542" BlurRadius="9"/>
</Border.Effect>
</Border>
我偶然发现了这一点的同时,试图找出如何做这自己。
对我来说,我没有控制的原始应用程序(Visual Studio的,顺便说一句),当我施加任何额外的WPF元素的结果更是离奇的“辉光影子”是相当从文本中删除。我永远不知道如何使它工作,所以我写了一个专门为此的ShaderEffect。
您可以下载该项目from its repo。
要使用它,直接应用效果的文本元素(标签,文本框等):
<Label Content="My Label Content">
<Label.Effect>
<effects:ChiseledTextEffect
ShadowIntensity="1" GlowIntensity="1" Size="0.5" MixDivisor="3" />
</Label.Effect>
</Label>
当然,包括:
xmlns:effects="clr-namespace:Diagonactic.WPF.Effects;assembly=Diagonactic.WPF"
...在XAML中的适当位置并引用该项目。
我已经包括的参数实际上是默认值,所以你可以把它们赶走,除非你需要调整它。
我的目标是用于阱进行凿(或者如果尺寸被设定为负数斜角),为HLSL/WPF ShaderEffect实现。它是PixelShader 2.0,所以它应该适用于Silverlight,尽管我没有亲自测试它。
完整的文档是here和有它看起来如何配置的非默认微妙的一点会给你一个截图,但这里的简略版:
尺寸 - 像素尺寸为闪烁/阴影(0.5会产生下面有一个可见的光晕;上面的阴影非常微妙,并且会在样本中的黑暗文本中隐藏)。使用负数来获得斜角。
发光/阴影强度 - 增加/减少效果。同时增加两者会使文本保持其原始颜色,增加一个或另一个会影响渲染文本的颜色和效果的强度。
MixDivisor - 将文本和效果混合到背景中。 3.0是一个非常微妙的混合,2.0是没有。如果文本位于图像顶部或不一致的背景上,但文本与背景的对比度较低,则将数字增加到3.0以上会很有用。这个用例的强度和除数一起工作。
你有权访问产生这些内容的来源吗?它是什么软件? – ChrisF 2010-02-21 18:18:57
不,我刚刚在网上看到了这个图片,并且知道这个效果在Mac上有很多用处。 – Burt 2010-02-21 18:45:50