You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WPF中鼠标离开按钮时是否存在获取控件默认颜色的内置方法?

解决方案

方案1:修改现有后台代码,1行即可解决

你现在的写法是直接给Fill属性赋值本地值,优先级高于你提前设置的默认样式/模板值,只需要在鼠标移出时清除这个本地赋值,就能自动恢复到原有默认颜色,不需要手动指定色值:

private void ButtonsLeaving_MouseLeave(object sender, MouseEventArgs e)
{
    (sender as Ellipse)?.ClearValue(Ellipse.FillProperty);
}

ClearValue 是WPF依赖属性自带的方法,会清除该属性的本地赋值,让属性值回退到之前的有效默认值,不管你之前给单个Ellipse设置的默认色是什么,都能正确恢复。

方案2:更符合WPF设计规范的无后台代码实现

完全不用写后台鼠标事件,直接用XAML样式触发器实现移入变色、移出自动恢复,适配所有不同默认色的Ellipse按钮:

<Style TargetType="Ellipse" x:Key="HoverEllipseButtonStyle">
    <!-- 可在这里设置通用默认Fill,也可以单独给每个Ellipse自定义Fill -->
    <Setter Property="Fill" Value="#FF252424"/>
    <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="True">
            <Setter Property="Fill" Value="IndianRed"/>
        </Trigger>
    </Style.Triggers>
</Style>

给需要该效果的Ellipse应用样式即可:<Ellipse Style="{StaticResource HoverEllipseButtonStyle}"/>,如果某几个Ellipse需要自定义默认色,直接单独给它加Fill属性即可,移出后会自动回到你单独设置的颜色,不需要额外处理。

内容的提问来源于stack exchange,提问作者Totitoti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 23:06:08