任何人都发现了在Silverlight 2中绕过不可变样式的良好模式?

我的意思是,任何人都有一个解决方法,因为一旦设置了元素,就不能以编程方式切换元素的样式,即这里的第二行会引发灾难性的失败异常:

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

有帮助吗?

解决方案

这是不可能的。我见过的最好的解决方法是微软的Nikhil Kothari:

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

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

其他提示

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top