在 WPF 中为整个应用程序设置皮肤的推荐方法是什么?
我希望我的 WPF 应用程序可以通过应用特定的 XAML 模板进行换肤,并且更改可以在应用程序范围内进行,即使对于动态控件或不在视觉/逻辑树中的控件也是如此。
我可以使用什么来完成此类功能? 是否有任何好的资源或教程可以展示如何完成此特定任务?
I want my WPF application to be skinnable, by applying a certain XAML template, and the changes to be application wide, even for dynamic controls or controls that aren't even in the visual/logical tree.
What can I use to accomplish this type of functionality? Are there any good resources or tutorials that show how this specific task can be done?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
替换资源会起作用,但我发现“结构蒙皮”更强大! 在 CodeProject 上了解更多相关信息...
http://www.codeproject.com/KB /WPF/podder1.aspx
The replacing of resource will work but I found "structural skinning" to be more powerfull! Read more about it on CodeProject...
http://www.codeproject.com/KB/WPF/podder1.aspx
我找到了将通用模板应用于所有控件而不使用模板键的方法。 解决方案是使用控件的类型作为 Style 键。
示例:
此处的 Style 键为 x:Key="{x:Type Button}",因此该样式将应用于按钮类型的所有控件,而无需控件将 Style 属性声明为静态或动态资源。
I have found the way to apply generic templates to all controls without using template keys. The solution is to use the type of the control as the Style key.
Example:
here the Style key is x:Key="{x:Type Button}", so the style will be applied to all controls of type button without the control declaring the Style property to be a static or dynamic resource.
采取的基本方法是在整个应用程序中使用资源并在运行时动态替换资源。
请参阅http://www.nablasoft.com/alkampfer/index.php/2008/05/22/simple-skinnable-and-theme-management-in-wpf-user-interface/ 了解基本信息方法
The basic approach to take is using resources all through your application and dynamically replacing the resources at runtime.
See http://www.nablasoft.com/alkampfer/index.php/2008/05/22/simple-skinnable-and-theme-management-in-wpf-user-interface/ for the basic approach