Fork me on GitHub

WFP之位图效果

 首先看一个图片:

 

在“第一步”这个按钮周围,有一转红色,这个效果就是用WPF的位图效果实现的。

位图效果(BitmapEffect 对象)是简单的像素处理操作。位图效果将 BitmapSource 作为输入并在应用效果(如模糊或投影)之后生成新的 BitmapSource。每个位图效果都公开了控制筛选属性的属性,如 BlurBitmapEffect Radius。(摘录MSDN
从上面的MSDN中看出一种效果的处理,主要有如果几种位图效果:
发光效果,投影效果,模糊效果,凹凸效果,浮雕效果五种,今天的例子中应用到两种效果,一个是发光效果,一个是投影效果。下面先看一下这个例子的XAML代码:

 1<Window.Resources>   
 2
 3 <Style TargetType="{x:Type Button}">
 4
 5      <Style.Triggers>
 6
 7              <Trigger Property="IsFocused" Value="True">
 8
 9                            <Setter Property = "BitmapEffect" >
10
11                                   <Setter.Value>
12
13                                          <OuterGlowBitmapEffect GlowColor="Red" GlowSize="20" Noise="20"
14
15                                                 Opacity="0.3" />
16
17                                   </Setter.Value>
18
19                            </Setter>
20
21                     </Trigger>
22
23              <Trigger Property="IsPressed" Value="true">
24
25          <Setter Property = "BitmapEffect" >
26
27            <Setter.Value>
28
29              <DropShadowBitmapEffect Color="Blue" Direction="320" 
30
31               ShadowDepth="20" Softness="1" Opacity="0.5"/>
32
33            </Setter.Value>
34
35          </Setter>       
36
37               </Trigger> 
38
39              </Style.Triggers>
40
41       </Style>       
42
43</Window.Resources>
44


这是例子中摘出来的关键呈现位图效果的代码,其中OuterGlowBitmapEffect标签是实现发光的效果,DropShadowBitmapEffect是实现投影效果。下面具体看一下。
发光效果:
<OuterGlowBitmapEffect GlowColor="Red" GlowSize="20" Noise="20"   Opacity="0.3" />
GlowColor="Red"是设置发光的颜色
GlowSize="20",是发光的边缘的大小,其类型为Double,如果不设置,默认值是20,它的值的范围是从 1 199。单位是与设备无关的单位(每个单位 1/96 英寸)为度量单位
Noise="1",是发光的边缘是来为杂点,0为没有杂点,1为最大限度杂点,其类型为Double,取值范围是01
Opacity="0.3",是透明度,这个属性很通用,类型为Double,取值范围是01

投影效果:
<DropShadowBitmapEffect Color="Blue" Direction="320"     ShadowDepth="20" Softness="1" Opacity="0.5"/>

Color="Blue"是设置投影的颜色
Direction="320",是投影的角度,是Double类型,角度是以逆时针方式增加
ShadowDepth="20",类型是Double,投影平面与阴影平面之间的距离,单位是与设备无关的单位(每个单位 1/96 英寸)为度量单位。值的有效范围从 0 300。默认值为 5
Softness="1",阴影的柔和度。值的有效范围从 0 1。默认值为 0.5
Opacity="0.5",是透明度,这个属性很通用,类型为Double,取值范围是01

本例中的其他效果不在这里多说了!
本例的代码文件:
Effectsdemo例子

其他位图效果雷同,可参数MSDN学习。

posted @ 2008-05-12 10:26  桂素伟  阅读(761)  评论(0编辑  收藏  举报