我试图更改鼠标移至按钮上时的默认边框颜色,但无法成功。我本以为这样就可以了,但显然不行:
<Button>;
<Button.Resources>;
<Color x:Key="ControlMouseOverColor">somecolor</Color>;
</Button.Resources>;
</Button>;
有什么方法可以做到这一点吗?
正朝着正确的方向前进,使用资源来定义颜色,但需要将其应用于
Button
的
MouseOver
状态的
BorderBrush
属性。
可以使用
Style
和
Trigger
来实现此目的。以下是如何操作:
<Button>
<Button.Style>
<Style TargetType="Button">
<Setter Property="BorderBrush" Value="Black" /> <!-- 默认边框颜色 -->
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderBrush" Value="{StaticResource ControlMouseOverColor}" />
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
<Button.Resources>
<Color x:Key="ControlMouseOverColor">#FF00FF00</Color> <!-- 替换为想要的颜色 -->
</Button.Resources>
</Button>
在这个例子中,我们:
-
创建一个
Style
,目标类型为Button
。 -
在
Style
中,我们设置默认的BorderBrush
为黑色。 -
添加一个
Trigger
,当鼠标悬停在按钮上时(IsMouseOver="True"
)触发。 -
在
Trigger
中,我们将BorderBrush
设置为我们之前定义的ControlMouseOverColor
资源。
请将
#FF00FF00
替换为想要的颜色代码。
这种方法允许在鼠标悬停在按钮上时更改边框颜色,同时保持其他状态的默认样式。
标签:c#,wpf,button From: 33468523