Effect 控件(发光/阴影)特效
因为BitmapEffect在.NET4.0已经被官方定义为过期所以再想使用按钮的发光特效只能直接使用Windows的依赖属性Effect 了
Effect :一个表示位图效果的 System.Windows.Media.Effects.Effect
DropShadowEffect有六个属性
DropShadowEffect.BlurRadius
DropShadowEffect.Color
DropShadowEffect.Direction
DropShadowEffect.Opacity
DropShadowEffect.RenderingBias
DropShadowEffect.ShadowDepth
DropShadowEffect.BlurRadius获取或设置一个值,该值指示阴影的模糊效果的半径
BlurRadius具有默认值,默认值为5效果如下
这里我没有给BlurRadius设置值BlurRadius使用的是默认值,5
代码
下面这个是使用的BlurRadius=30.可以看的出因为BlurRadius(阴影模糊效果半径)的值变大
图中的阴影效果也部分也越加大但是阴影向下偏移的量就不怎么明显了这是因为DropShadowEffect.ShadowDepth这个属性值太小的缘故
ShadowDepth值 获取或设置投影距纹理下方的距离.ShadowDepth值也有默认值,默认值为5
如下图当我将ShadowDepth值设置的和BlurRadius一样大时,也就是当BlurRadius等于20时,可以看到,阴影又变回控件的右下方,不过因为BlurRadius变大的缘故所以阴影的范围变大了
至于为什么在左下方那是因为Direction值的缘故
代码:
DropShadowEffect.Direction:获取或设置投影的方向。Direction也有默认值,默认值是315
至于315是怎么定义的…
控件的水平最右方为0,控件的中心点按圆的角度定义Direction的值,也就是投影的方向
也就是说当Direction=90的时候,阴影投影的`位置就是控件的正上方如下图
代码:
所以,Direction的默认值315就是将阴影定义在了控件的右下方
注意Direction的值可以超过360当Direction的值超过360时,系统会将Direction的值减去360用得到的值定义Direction
也就是说当Direction的值等于450的时候,控件阴影的投影方向依然是控件的正上方如下图代码:
DropShadowEffect.Opacity值和DropShadowEffect.RenderingBias值
Opacity是设置阴影的透明度,RenderingBias是设置阴影加载的时候是注重阴影的加载质量还是加载速度,很简单这个就不做赘述了
DropShadowEffect.Color值,用于定义阴影的颜色值
如图我将默认黑色改为Aquamarine(翡翠绿)色
代码
至于按钮发光:如图
设置好之后再将属性改成当鼠标移入触发的动画效果就行了