2008-09-24 22 views
2

任何人都发现了一个很好的模式来解决Silverlight 2中的不可变样式?

我的意思是没有任何人有一个事实,即一旦它已经被设置你不能切换风格元素的编程方式,即第二线这里将引发灾难性的故障异常的解决方法:Silverlight 2中的不可变样式

this.TestButton。 Style =(Style)Application.Current.Resources [“Fred”];
this.TestButton.Style =(Style)Application.Current.Resources [“Barney”];

回答

2

这是不可能的。我见过的最好的解决方法是从尼基尔科塔微软:

http://www.nikhilk.net/Silverlight-Themes.aspx

还有就是在App.xaml中集中定义样式反正一大缺点,这是它打破了所有设计师的支持,当你引用这些来自其他用户控件的样式。我没有使用它,但Nikhil的主题引擎看起来非常有前途,而且我有一种有趣的感觉,他的许多想法最终都会使它成为silverlight产品。

+0

感谢您的链接。顺便说一句 - 代码并不意味着除了说明之外的任何东西 - 我通常不使用类似Fred&Barney这样的名称的样式:-) – 2008-09-25 07:54:33

0

我不知道这是否有帮助,但我相信您可以在运行时根据需要多次更改控件的模板。也许这将是一个潜在的解决方法。

2

问题在Silverlight 3中消失了,其中样式是可变的 - 耶!