gpt4 book ai didi

c# - ResourceDictionary 样式触发器不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 19:13:07 25 4
gpt4 key购买 nike

在下面的触发器中,只有前景 setter 在工作。我不明白为什么。

 <Style   TargetType="{x:Type Button}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Red"/>
<Setter Property="BorderBrush" Value="Red"/>
<Setter Property="Foreground" Value="Red"/>
</Trigger>

感谢您的帮助。

最佳答案

这不起作用的原因是因为默认的 Button 模板使用 ButtonChrome绘制边框和背景并根据 Windows 主题(例如 Windows XP 样式、Windows 7 样式)处理鼠标悬停和禁用等状态。

为了允许您的触发器被应用,您将需要定义一个自定义按钮模板,该模板使用标准样式化的 WPF 元素,如 Border,而不是 ButtonChrome。这是一个简单的工作示例:

<Button Content="button">
<Button.Style>
<Style TargetType="Button">
<Setter Property="BorderThickness" Value="3" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Background="{TemplateBinding Property=Background}"
BorderBrush="{TemplateBinding Property=BorderBrush}"
BorderThickness="{TemplateBinding Property=BorderThickness}">
<ContentPresenter />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Red" />
<Setter Property="BorderBrush" Value="Green" />
<Setter Property="Foreground" Value="Blue" />
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>

关于c# - ResourceDictionary 样式触发器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19054198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com