Silverlight 2中的不可变样式

时间:2020-03-06 14:39:25  来源:igfitidea点击:

有人找到了解决Silverlight 2中不可变样式的好方法吗?
我的意思是说,对于某个元素,一旦设置后就无法通过编程方式切换它的样式,那么任何人都可以解决,即此处的第二行将引发灾难性的失败异常:

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

解决方案

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

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

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

无论如何,在App.xaml中集中定义样式的主要缺点是,当我们从其他用户控件中引用样式时,它将破坏所有设计者的支持。我还没有使用过它,但是Nikhil的主题引擎看起来非常有前途,而且我很有趣地感觉到他的许多想法最终都会使它成为Silverlight产品。

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