当前位置: 首页 > 编程语言 > C#

按钮背景不会改变C#WPF分享

时间:2023-04-10 13:02:14 C#

按钮背景不会改变C#WPF我正在尝试改变鼠标悬停的样式。我的代码是:但背景是默认的。但是当我将属性更改为BorderThickness时它起作用了。我究竟做错了什么?在按钮的默认模板中,ControlTemplate中有一个触发器,它将按钮背景设置为#FFBEE6FD,并且由于控件模板触发器优先于样式触发器,因此触发器永远不会工作。为此,您必须覆盖按钮的默认模板并从中删除触发器,以便应用样式触发器。下面是注释掉该特定触发器的默认模板。如果您想覆盖BorderBrush,也可以将其从模板中移除。#FFBEE6FD-->#FF3C7FB1#FFC4E5F6#FF2C628B#FFBCDDEE#FF245A83#FFF4F4F4#FFADB2B5#FF838383如何将控件模板设置为按钮?在父面板或UserControl的资源部分下的某处定义一个模板,可以通过StaticResource应用它:.......编辑:正如Rohit在评论中指出的那样,这在Windows8上不起作用,因为一些更改在PresentationFramework中声明了按钮的默认模板。...在Windows7中,按钮的默认模板没有ControlTemplate触发器。这就是为什么您发布的代码在Windows7上运行良好,但在Windows8及更高版本上不起作用的原因。Rohit关于DependencyPropertyPrecedence的回答是正确的,但是有一种比重写Button模板更简单的方法来修复它。如果查看DependencyPropertyPrecedenceList,您会注意到set属性优先于Triggered属性,这就是为什么您的按钮将始终使用您在标记中定义的背景。如果将Background属性移动到自身,Triggered属性将起作用,因为Triggered属性优先于Style中定义的属性。您必须覆盖默认模板才能实现此目的。希望这可以帮助。以上就是C#学习教程:后台不会改变按钮C#WPF分享的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。涉及侵权,请点击维权联系管理员删除。如需转载请注明出处: