今日您是第次访问
设为主页
添加改藏
网站优化
 
了解WPF技术
Silverlight WPF/E教程
WPF应用程序教程
当前位置:网站主页->Silverlight教程->文章浏览

解说:Silverlight Style,Setter(XAML/Design)换肤机制

日期:2008-10-21 来源:WPFHome.com.cn 制作:yoling group

         微软对Silverlight从1.0到2.0是一个飞跃性的升级。我为是一个微软热忠的Fans,在此向Silverlight开发团喊出热诚的支持口号“Silverlight第一,Silverlight加油”!

         皮肤样式是由Silverlight运行类库中的控件基类FrameworkElement的中的换肤机制,使得程序的逻辑层和表示层独立!也是XAML实现“面向对象编程”思路的方法,一个控件中Style属性包含着一个Style对象,当Style对象更改时就可更新控件的大小及颜色等属性。Style对象对表示层中还包括鼠标上去事件时的变化,和动画等的支持!这一系列数据组成一个Style对象,并可以把这个Style对象应用到多个控件。 Style对象通常作为“资源”放在FrameworkElement. Resources属性集合,资源相关参见:《Silverlight Resources资源机制》。举例:

<UserControl…
<Canvas>
<Canvas.Resources>
<Style TargetType="Button" x:Key="kk">
<Setter Property="Foreground" Value="#FFFF0000" />
</Style>
</Canvas.Resources>
<Button Content="HH" Style="{StaticResource kk}" />
<Button Content="HH" Style="{StaticResource kk}" />
</Canvas>

         初出锋芒的Silverlight 2.0当前还不支持更其它WPF强的的一些换服功能:“Triggers解发器、应用所有类型(Apply to all)、Style继承”,我们会关注Silverlight的变化,并随时更新此文。


Expression Blend可视化设计:
         首先新建一个空白XAML文档,创建一个矩形(Rectangle)并选中,在菜单选择“Object->Edit Style->Create Empty”命令(图1)。


图1

         点击创建样式时出现图2窗体:


图2

         Define in指创建位置,如果选择Application可以在任何位置引用创建的样式,This document指的是在当前文档中的哪个控件的Resources里面创建。确定后到Resource面板,并点击Filter按扭如图3所示:


图3

         这里的Style1是我们创建时的Name(Key),右击菜单中点击Edit,并转到Properties面板,这时可以在Properties属性面板中定义当前样式的值了,在此设置Fill为红色!


图4

         点击菜单命令:“Window->Active Workspace->Animation Workspace”切换到动画布局,点击图5中表示的按钮退出样式修改模式。


图5

         上面的创建样式完毕,下面让另一个控件使用创建的样式。在创建一个新的矩形(Rectangle),并点击属性Properties(面板)Fill(填充)右边的小方击出现如图6所示的菜单。并且点击Reset,这样会晴空创建Rectangle中的颜色,而可以使用套用样式中的颜色了。


图6

         选中创建的矩形(Rectangle),并且点击“Object->Edit Style->Apply Resource->Style1”让这个矩形使用Style1样式。创建的这个矩形就成红色了。


图7