我是Silverlight的新手,但当我用Google搜索时,我找不到任何相关信息。
我有一个按钮,我试图以编程方式设置样式。我有一个在XAML文件中定义的样式,我想将样式拉入C#,这样我就可以动态创建一个按钮并为其指定这种样式。到目前为止,这正是我的尝试:
button.Style = (Style)Resources["CloseButtonStyle"];
然而,它只是让按钮没有风格。是否有捷径可寻?我觉得这应该是显而易见的,但我无法让它发挥作用。
答案 0 :(得分:2)
我可以调用button1.Style = (Style)Resources["NonExistentKey"];
并且它使我的按钮完全没有样式,指出资源可能没有找到,你不会得到例外。
您可以直接访问Resources
属性,但是样式是否真的在Window / UserControl的直接资源字典中/您有什么用?
答案 1 :(得分:2)
您假设当前对象上的Resources
属性是包含已定义样式的属性。但是,我认为,鉴于您的问题的症状,CloseButtonStyle
实际上是在控制层次结构中进一步定义的。
相反,您需要traverse your control hierarchy直到找到资源(或者如果您知道定义它的对象,则直接引用该对象)。不幸的是,Silverlight不包括像{WPF这样的FindResource
调用,但实现自己的并不是太难。