软件下载 | 资讯教程 | 最近更新 | 下载排行 | 一键转帖 | 发布投稿
您的位置:最火下载站 > 电脑教程 > 编程开发 > .NET技术 > 使用默认样式管理器管理你的Silverlight应用的外观

使用默认样式管理器管理你的Silverlight应用的外观

Silverlight 3没有像WPF的默认样式或是asp.net的主题特性, 举例来说我们无法像ASP.NET那样让程序的每个按钮自动的使用一个样式.
在Silverlight 3里你需要在每个控件上明确的设置样式.

好消息是你能在Silverlight Toolkit里找到默认样式管理器(ImplicitStyleManager)控件, 它允许你通过在一个容器控件里定义两个附加属性来让容器内部的控件使用一个默认样式.

在Silverlight 3里使用主题样式

在一个XAML资源字典文件里定义你的样式并且设置它的生成操作为"内容(Content)".然后在页面的一个容器控件上通过"ResourceDictionaryUri"附加属性来引用这个文件:

<Canvas themingToolkit:ImplicitStyleManager.ApplyMode="OneTime" themingToolkit:ImplicitStyleManager.ResourceDictionaryUri="Assets/ShinyBlue.xaml">

ApplyMode有三个可选值: None, OneTime和Auto
None: 不使用样式
OneTime: 在页面加载后接受一次指定的样式
Auto: 在运行时动态添加的控件也将会使用指定样式
在容器内部(我们例子里是canvas), 按通常方式定义一些的控件:

<TextBox Text="TextBox" Width="125" />
<PasswordBox Width="125" />
<ProgressBar IsIndeterminate="False" Maximum="1" Value="0.5"/>
<RadioButton Content="RadioButton 1" IsChecked="True" />
<RadioButton Content="RadioButton 2"/>
<CheckBox Content="CheckBox 1"/>
<CheckBox Content="CheckBox 2" IsChecked="True"/>
[…]

在运行的时候他们会自动使用我们指定的样式:

如果不想自己从头开始创建一个主题样式, 你也可以从toolkit里找到一些例子.

http://www.codeplex.com/wikipage?ProjectName=Silverlight&title=Silverlight%20Toolkit%20Overview%20Part%203&referringTitle=Home

这些主题所的XAML文件可以在安装toolkit后在本地找到,如果安装了2009年10月的工具包,那么本地路径是:
C:\Program Files\Microsoft SDKs\Silverlight\v3.0\Toolkit\Oct09\Themes\Xaml

在这个例子使用了ShinyBlue.xaml这个主题样式并通过默认样式管理器加载了它.
你可以在Expression Community Gallery找到更多的样式http://gallery.expression.microsoft.com/
特定主题样式控件(Specific Theme controls)
你也可以使用在Toolkit里的主题容器(Theme Containers) 控件来使用主题样式. 这些控件的内部其实是使用了默认样式管理器和xaml资源文件.
使用ShinyBlue主题可以像下面这样简单:

<shinyBlue:ShinyBlueTheme>
<Grid>
...
</Grid>
</shinyBlue:ShinyBlueTheme>

这里的shinyBlue前缀指向包含ShinyBlue主题控件的程序集(在toolkit中):
xmlns:shinyBlue="clr-namespace:System.Windows.Controls.Theming;
assembly=System.Windows.Controls.Theming.ShinyBlue"
运行时改变主题(Changing Theme at runtime)

相关阅读
网友评论