摘要:本文总结了通过Silverlight ToolKit和ResourceDictionary使用Silverlight主题的方式。
注:本文使用的IDE是vs.net 2010 Ultimate SP1;Silverlight版本为4;Silverlight Toolkit使用的是Silverlight_4_Toolkit_April_2010.msi安装包。从http://silverlight.codeplex.com/可以获得Silverlight Toolkit的安装文件。通过下面的链接能够访问Toolkit的演示页面:http://silverlight.net/content/samples/sl4/toolkitcontrolsamples/run/default.html
Silverlight在当初发布时就已酷炫的用户界面吸引了很多人的关注,很多人也因此开始加入了Silverlight开发的团队中。但是对于大部分开发人员来说想要做出一些比较好看的界面是比较困难的。不过幸好有一些现成的主题供我们使用,美化我们的界面。
一、使用Silverlight ToolKit应用主题
我们可以访问Silverlight Toolkit的演示页面选择Theme Browser查看我们想要的主题样式。例如我们想使用TwilightBlue主题。
新建一个Silverlight Application项目,选择Silverlight的版本为4,使用asp.net承载。右键Silverlight程序中的References选择添加引用。
打开添加引用对话框,找到我们想要使用主题的引用:System.Windows.Controls.Theming.TwilightBlut。这里注意还要引用System.Windows.Controls.Theming.Toolket,否则使用主题时会报错。
在我们想要使用主题的页面中(例如MainPage.xaml)引用刚才添加的两个主题,语句如下:
xmlns:twilightblue="clrnamespace:System.Windows.Controls.Theming;assembly=System.Windows.Controls.Theming.TwilightBle"
然后我们就能在xaml文件中写出下面这一对标签:
<twilightblue:TwilightBlueTheme></twilightblue:TwilightBlueTheme>
注意:这个标签中只能包含一个子元素,所以我们需要将要应用主题的元素放在一个布局元素内(例如StackPanel),再将这个布局元素放入上述标签内,这样就能应用主题效果了,运行效果如下图:
代码如下:
View Code1 <twilightblue:TwilightBlueTheme>
2 <StackPanel Width="500" HorizontalAlignment="Left">
3 <TextBlock FontWeight="Bold" FontSize="20" Foreground="White">Silverlight Toolkit Theme</TextBlock>
4 <TextBlock>© April 2010 TwilightBlueTheme</TextBlock>
5 <TextBlock>Installed Chapters:</TextBlock>
6 <ListBox>
7 <ListBoxItem>Chapter 1</ListBoxItem>
8 <ListBoxItem>Chapter 2</ListBoxItem>
9 </ListBox>
10 <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
11 <Button MinWidth="10" Margin="10" Width="100">Help</Button>
12 <Button MinWidth="10" Margin="10" Width="100">OK</Button>
13 </StackPanel>
14 <TextBlock>You have successfully registered this product.</TextBlock>
15 </StackPanel>
16 </twilightblue:TwilightBlueTheme>
这样我们就可以选择我们喜欢的主题来美化我们的Silverlight程序了。
二、使用ResourceDictionary导入主题
通过ResourceDictionary我们可以导入已经用xaml文件写好的主题。首先从下面的这个链接下载现有主题文件:http://www.microsoft.com/downloads/en/details.aspx?FamilyID=e9da0eb8-f31b-4490-85b8-92c2f807df9e&displaylang=enSL4Themes-RawAssets.zip压缩包中包含了4个主题(AccentColor,Cosmopolitan, JetPack, Windows7)文件。下面是四个主题使用效果的链接:这四个主题能应用于普通控件,SDK控件和Toolkit控件。SL4Themes-templates.zip压缩包中包含了应用四个主题的Silverlight Navigation程序。下面来看一下如何使用这些主题。在Silverlight程序中建立一个文件夹叫“Assets”,在这个文件夹内包含我们使用的主题文件,如下图所示:在App.xaml文件中引入我们的主题文件,代码如下:View Code1 <Application.Resources>
2 <ResourceDictionary>
3 <ResourceDictionary.MergedDictionaries>
4 <ResourceDictionary Source="Assets/Styles.xaml"/>
5 <ResourceDictionary Source="Assets/CoreStyles.xaml"/>
6 <ResourceDictionary Source="Assets/SDKStyles.xaml"/>
7 <ResourceDictionary Source="Assets/ToolkitStyles.xaml"/>
8 </ResourceDictionary.MergedDictionaries>
9 </ResourceDictionary>
10 </Application.Resources>如果程序中没有使用SDK控件或Toolkit控件,SDKStyles.xaml和ToolkitStyles.xaml就不用引入了。注意:引入文件后在编译程序时会报,找不到控件的错误,这是由于我们的程序没有添加对这些命名空间的引用,我们添加引用后,就能编译通过了。或者把报错的文件从项目中移除。这样,我们的程序中的所有控件就会变成对应主题的样式。这种主题的使用方式不像Toolkit那样,必须包含在对应的标签内才能生效。但Toolkit可以在同一个程序中使用多种主题。以上就是对Silverlight主题使用的一个小小的总结,希望能提供一些帮助。