WPF 按钮鼠标按下时没有变蓝的解决方案
<Style x:Key='butt' TargetType='{x:Type Button}'>
<Setter Property='Background' Value='#008CBA'/>
<Setter Property='Foreground' Value='LawnGreen'/>
<Setter Property='BorderBrush' Value='#008CBA'/>
<Setter Property='BorderThickness' Value='1'/>
<Setter Property='Padding' Value='5'/>
<Setter Property='Template'>
<Setter.Value>
<ControlTemplate TargetType='{x:Type Button}'>
<Border x:Name='border'
Background='{TemplateBinding Background}'
BorderBrush='{TemplateBinding BorderBrush}'
BorderThickness='{TemplateBinding BorderThickness}'
Padding='{TemplateBinding Padding}'
CornerRadius='5' >
<ContentPresenter HorizontalAlignment='Center'
VerticalAlignment='Center'/>
</Border>
<ControlTemplate.Triggers>
<!-- 当按钮被按下时,将背景色设置为蓝色 -->
<Trigger Property='IsPressed' Value='true'>
<Setter TargetName='border' Property='Background' Value='Blue'/>
</Trigger>
<!-- 当鼠标悬停在按钮上时,将背景色设置为红色 -->
<Trigger Property='IsMouseOver' Value='True'>
<Setter TargetName='border' Property='Background' Value='red'/>
</Trigger>
<Trigger Property='IsEnabled' Value='False'>
<Setter TargetName='border' Property='Opacity' Value='0.5'/>
<Setter TargetName='border' Property='Button.Foreground' Value='Blue'/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<StackPanel Margin='5' Grid.Row='3' Orientation='Horizontal' HorizontalAlignment='Right'>
<Button Content='添加行' Margin='0 0 40 0' Click='AddRow_Click' Style='{StaticResource butt}'/>
<Button Content='删除行' Click='DeleteRow_Click' Margin='0 0 20 0' Style='{StaticResource butt}'/>
</StackPanel> 当按鼠标按下时没有变蓝色
<p>可能是因为鼠标按下时的触发器没有被正确设置。请检查以下几点:</p>
<ol>
<li>
<p>检查按钮的IsPressed属性是否被正确地绑定到模板的触发器。</p>
</li>
<li>
<p>确保模板中的触发器设置了正确的目标名称,以便将属性值设置到正确的元素上。</p>
</li>
<li>
<p>确保触发器的Value属性值与按钮的IsPressed属性匹配(即,当按钮被按下时,IsPressed属性值应为true)。</p>
</li>
</ol>
<p>如果以上几点都已检查并且问题仍然存在,请尝试使用调试器来跟踪触发器的执行过程,并查看是否有任何错误或异常。</p>
原文地址: https://www.cveoy.top/t/topic/nw3V 著作权归作者所有。请勿转载和采集!