当前位置:  开发笔记 > 运维 > 正文

将单个样式应用于多个控件(并调整每个样式)

如何解决《将单个样式应用于多个控件(并调整每个样式)》经验,为你挑选了1个好方法。

我有一个使用自定义样式的WPF应用程序.在其中我有一组按钮,每个按钮都有一个自定义背景图像.对于每个按钮,我正在提供正常和鼠标按下图像.是否有一种简单的方法可以使用单一样式(并根据具体情况自定义每个按钮)?

目前我正在为每个按钮创建一个新样式,这不是最好的方法吗?



1> Rhys..:

对于只有XAML的解决方案,您可以考虑这一点: -

我假设您正在使用控件模板作为您的样式的一部分,如下所示: -


我已经在这里屠宰了控制模板,你的可能会更复杂

现在,如果您在与上述样式相同的区域中添加以下样式,那么这将指定用于默认大小写的图像


当您需要使用按钮时,您可以在XAML中进一​​步向下执行此操作: -


它不漂亮,但仍然允许主风格,并且比使用多种风格稍微更短,更少重复.

它的工作方式是首先在按钮的资源(通常为空)中搜索资源名称"NormalImage",然后是父容器,一直到页面/窗口资源,然后到应用程序资源.第一个匹配获胜,因此在这种情况下,在窗口/页面/容器级别资源之前选择引用OverrideImage.png的本地定义的名为"NormalImage"的样式,其名称与引用DefaultImage.png的名称相同

进一步减少文字量

如果所有按钮或大多数按钮都使用此样式,则从样式定义中删除x:Key ="MyButtonStyle".这样,WPF将在范围内的所有按钮上使用该样式,而无需明确指定样式.然后,您可以使用style ="{x:null}"明确地不使用默认样式.从而:-


  

  




推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有