gpt4 book ai didi

c# - 背景在 Mouse_Leave 中发生变化,但在 Mouse_Enter 中没有变化

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

我刚刚接触 WPF。我有两个事件处理程序:

private void Mouse_Enter(object sender, MouseEventArgs e)
{
((Button)sender).Background = Brushes.Red;
}
private void Mouse_Leave(object sender, MouseEventArgs e)
{
((Button)sender).Background = Brushes.Black;
}

当鼠标进入按钮区域时,没有任何反应。但是,当离开按钮区域时,按钮会变黑。我在 Mouse_Enter 中放置了一个断点,它确实在执行该方法,只是不改变背景颜色。

如何解决?谢谢!

最佳答案

发生这种情况是因为默认按钮模板中有一个“内置”触发器,导致按钮忽略您在 MouseEnter 事件中更改其背景的尝试,您需要先编辑模板并禁用触发器, 按照以下步骤操作:

在 Visual Studio 编辑器中,右键单击您的按钮并选择“编辑模板”,然后选择“编辑副本...”为您的样式命名任何您想要的名称,然后通过 XAML 查找名为“IsMouseOver”的触发器并删除 2下面几行。

                    <ControlTemplate.Triggers>
<Trigger Property="IsDefaulted" Value="true">
<Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="true">
--- Delete this line <Setter Property="Background" TargetName="border" Value="{StaticResource Button.MouseOver.Background}"/>
--- Delete this line <Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.MouseOver.Border}"/>
</Trigger>
<Trigger Property="IsPressed" Value="true">

关于c# - 背景在 Mouse_Leave 中发生变化,但在 Mouse_Enter 中没有变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47463102/

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