Silverlight 4:在不使用Toolkit的情况下更改整个应用的主题/样式

时间:2010-09-27 19:41:02

标签: silverlight themes resourcedictionary

我们正在开始我们的第一个来自WPF的Silverlight项目。这是一个相对简单的门户网站,鉴于我们使用WPF工具包的经验,我们希望避免引用Silverlight Toolkit。

我不是一个程序员,并且有几个与主题相关的问题:

  • 隐式样式使这更容易。很明显你可以切换出资源词典来改变你的主题。如何在不依赖工具包的情况下执行此操作?

  • 如何将样式应用于整个应用程序(如WPF),而不是将内容包装在主题容器中?我看到有一个可以使用的ApplicationThemeURI,但这需要工具包。

感谢。

2 个答案:

答案 0 :(得分:1)

将样式应用于整个应用程序是Silverlight中的一项简单任务4.将此代码放在App.xaml或themes / generic.xaml中:

<!-- Sample style for each button in the application -->
<Style TargetType="Button">
</Style>

本文可以帮助您: http://www.silverlightshow.net/items/Implicit-Styles-in-Silverlight-4.aspx

您可以通过以下方式更改资源字典:

var dict = Application.Current.Resources.MergedDictionaries.FirstOrDefault(rd => rd.Source == new Uri("Dictionary1.xaml", UriKind.Relative));
if (dict != null)
     dict.Source = new Uri("Dictionary2.xaml", UriKind.Relative);

答案 1 :(得分:0)

关于Siverlight工具包的说明。我最后一次使用WPF工具包(不久之前),我得到的印象是它或多或少是可选的。我不会说Silverlight工具包也是如此。它增加了许多难以自行实现的重要功能,虽然它不是无错误的,但它非常可靠。我不能保证它的每个方面,但我们在一个大型的Silverlight项目(约30K行代码)中广泛使用它,我们发现它是不可或缺的。除非您了解项目会遇到的具体问题,否则我建议您重新考虑不使用它的决定。