English 中文(简体)
Silverlight 2中的不可变样式2
原标题:
  • 时间:2008-09-24 12:02:39
  •  标签:

有人在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产品。

问题回答

这个问题在Silverlight3中消失了,因为那里的样式是可变的——耶!

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





相关问题
热门标签