做WPF项目经常会碰到让客户从列表中选择样式,选定后,动态更改部件的样式。下面以动态更改一个控件的背景图为例子来说说实现的方法。
如果大家有更好的方法,欢迎在评论中提出来。
控件的背景图使用Microsoft Expression Design 4 设计的,使用Express Design的很大一个好处,就是不需要使用图片(减少软件的体积),而且
可以把设计的内容直接添加到ResourceDictionary里使用。在Express Design设计好的部件,按右键选择导出,格式选择:XAML Silverlight 4/WPF Canvas 即可。
导出后,去掉不必要的内容:各个Layer的名称等等,就可以放在资源文件内使用了。
在里面添加从Express Design里设计好的内容:(这里以三个不同颜色的形状为例)
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<VisualBrush TileMode="None" x:Key="Style1">
<VisualBrush.Visual>
<Viewbox Width="1920" Height="1080">
<Canvas Width="600.039" Height="599.879">
<Path Width="145.609" Height="144.765" Canvas.Left="-7.62939e-005" Canvas.Top="-4.57764e-005" Stretch="Fill" Fill="#FFFFC800" Data="F1 M -7.62939e-005,72.3784C -7.62939e-005,112.359 32.5887,144.765 72.8046,144.765L 72.8046,144.765C 113.012,144.765 145.609,112.359 145.609,72.3784L 145.609,72.3784C 145.609,32.3979 113.012,-4.57764e-005 72.8046,-4.57764e-005L 72.8046,-4.57764e-005C 32.5887,-4.57764e-005 -7.62939e-005,32.3979 -7.62939e-005,72.3784 Z "/>
&
如果大家有更好的方法,欢迎在评论中提出来。
控件的背景图使用Microsoft Expression Design 4 设计的,使用Express Design的很大一个好处,就是不需要使用图片(减少软件的体积),而且
可以把设计的内容直接添加到ResourceDictionary里使用。在Express Design设计好的部件,按右键选择导出,格式选择:XAML Silverlight 4/WPF Canvas 即可。
导出后,去掉不必要的内容:各个Layer的名称等等,就可以放在资源文件内使用了。
本范例实现步骤如下:
在里面添加从Express Design里设计好的内容:(这里以三个不同颜色的形状为例)
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<VisualBrush TileMode="None" x:Key="Style1">
<VisualBrush.Visual>
<Viewbox Width="1920" Height="1080">
<Canvas Width="600.039" Height="599.879">
<Path Width="145.609" Height="144.765" Canvas.Left="-7.62939e-005" Canvas.Top="-4.57764e-005" Stretch="Fill" Fill="#FFFFC800" Data="F1 M -7.62939e-005,72.3784C -7.62939e-005,112.359 32.5887,144.765 72.8046,144.765L 72.8046,144.765C 113.012,144.765 145.609,112.359 145.609,72.3784L 145.609,72.3784C 145.609,32.3979 113.012,-4.57764e-005 72.8046,-4.57764e-005L 72.8046,-4.57764e-005C 32.5887,-4.57764e-005 -7.62939e-005,32.3979 -7.62939e-005,72.3784 Z "/>
&