2

有人在 Silverlight 2 中找到了绕过不可变样式的好模式吗?

我的意思是,有没有人可以解决这样一个事实,即一旦设置了元素的样式,就无法以编程方式切换它,即这里的第二行将引发灾难性的失败异常:

this.TestButton.Style = (Style)Application.Current.Resources["Fred"];
this.TestButton.Style = (Style)Application.Current.Resources["Barney"];

4

3 回答 3

2

这是不可能的。我见过的最好的解决方法来自 Microsoft 的 Nikhil Kothari:

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

无论如何,在 App.xaml 中集中定义样式有一个主要缺点,即当您从其他用户控件引用这些样式时,它会破坏所有设计器支持。我没用过,但 Nikhil 的主题引擎看起来很有前途,而且我有一种有趣的感觉,他的许多想法最终都会成为 silverlight 产品。

于 2008-09-24T18:57:43.533 回答
2

这个问题在 Silverlight 3 中消失了,因为它的样式是可变的 - 耶!

于 2009-03-26T09:15:01.917 回答
0

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

于 2008-09-24T16:45:38.670 回答