1、可视化对象。
Visual类是抽象类,所以不能创建该类的实例,相反,需要使用继承自Visual类的某个类,包括UIElement类,最有用的派生类是DrawingVisual类,该类继承自ContainerVisual类,为使用DrawingVisual类绘制内容,需要调用DrawingVisual.RenderOpen()方法,该方法返回一个可用于定义可视化内容的DrawingContext对象,绘制完毕后,需要调用DrawContext.Close()方法。
2、效果。
WPF提供了可应用于任何元素的可视化效果,效果的目标是提供一种简便的声明式方法,从而改进文本、图像、按钮以及其他控件的外观。不是写自己的绘制绘制代码,而是使用某个继承自Effect的类(在System.Windows.Media.Effects名称空间中),以获得模糊、阴影等效果。效果类如下:
效果类 | ||
名称 | 说明 | 常用属性 |
BlurEffect | 模糊元素中内容 | Radius、KernelType、RenderingBias |
DropShadowEffect | 在元素背后添加矩形阴影 | BlurRadius、Color、Direction、Opacity |
ShaderEffect | 应用像素着色器 | PixelShader |
2.1)、BlurEffect类。
BlurEffect类用于模糊元素内容。
xaml代码:
<StackPanel>
<Button Padding="30" FontSize="20" Margin="10" Content="我是没有模糊的Button"></Button>
<Button Padding="30" FontSize="20" Margin="10" Content="我是第一个模糊的Button(Radius=2)">
<Button.Effect>
<BlurEffect Radius="3"></BlurEffect>
</Button.Effect>
</Button>
<Button Padding="30" FontSize="20" Margin="10" Content="我是第二个模糊Button(Radius=5)">
<Button.Effect>
<BlurEffect Radius="5"></BlurEffect>
</Button.Effect>
</Button>
</StackPanel>
效果图:
2.2)、DropShadowEffect类。
DropShadowEffect类用于在元素背后添加轻微的偏移阴影。DropShadowEffect类常用属性如下:
<StackPanel>
<TextBlock Text="我是没有被修饰的TextBlock元素" FontSize="20"></TextBlock>
<TextBlock FontSize="20" Text="我是TextBlock元素">
<TextBlock.Effect>
<DropShadowEffect Color="Red" ShadowDepth="30" Opacity="0.5"></DropShadowEffect>
</TextBlock.Effect>
</TextBlock>
</StackPanel>
效果图:
End!