在 Silverlight 2 (RC0) 中自动应用模板(主题)
有没有办法自动将主题/模板/样式应用于目标类型的所有控件,这样我就不必在所有控件上指定 Template=..., Style=... ?
Is there a way to automatically apply a theme/template/style to all controls of the targettype, so I don't have to specify Template=..., Style=... on all controls?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我认为有一种方法可以通过省略 x:Key 属性来做到这一点,但这似乎不再起作用了。 基于一些谷歌搜索,在我看来,您最好是创建一个自己的自定义控件库,其中包含一个定义您的自定义样式的主题/generic.xaml 文件。 然后您可以使用自己的样式正确的元素(MyButton 而不是 Button)。 或者坚持使用 Style 属性。
此处的一些示例以及使用主题的替代方法此处。
更新:刚刚找到了一个非常好的例子此处(我想您可能已经看过它了:)。
I thought there was a way to do this by just omitting the x:Key attribute, but that doesn't seem to work anymore. Based on some googling it seems to me like you're best best is to create a custom control library of your own that has a themes/generic.xaml file that defines your custom styles. Then you can use your own elements that are styled properly (MyButton instead of Button). Either that or stick with the Style property.
Some example of this here and an alternate approach using themes here.
Update: Just found a really good example of this here (I think you might have already seen it :).
要为所有控件设置主题,请创建启动事件并在启动事件处理程序中设置主题。 该主题将应用于该解决方案中的所有用户控件。
To set up a theme for all controls create a Startup event and set the theme in the Startup event Handler. That theme will be applied all user control in that solution.
Einarl:目前在 Silverlight 2 核心中还没有一种方法可以“级联”控制模板/样式。 也就是说,您不能为 TextBox 设置样式/控件模板并期望所有 TextBox 都选择它。 这绝对是团队正在为未来版本研究的内容。
Einarl: Right now there isn't a way to "cascade" control templates/styles in Silverlight 2 core. That is to say that you can't set a style/control template for TextBox and expect all TextBoxes to pick it up. It is definitely something the team is looking into for future versions.