wpf - 鼠标悬停时更改椭圆的颜色

标签 wpf

我是 WPF 的新手。这有点令人困惑,为什么第一个代码片段工作正常(当鼠标悬停时,颜色会改变)但第二个代码片段不起作用?

<Ellipse Height="50" Width="50" Opacity="0.5" Stroke="Black" >
<Ellipse.Style>
    <Style TargetType="{x:Type Ellipse}">
        <Setter Property="Fill" Value="Blue" />
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                <Setter Property="Fill" Value="Green">
                </Setter>
            </Trigger>
        </Style.Triggers>
    </Style>
</Ellipse.Style>

//

<Ellipse Height="50" Width="50" Fill="Blue" Opacity="0.5" Stroke="Black" >
<Ellipse.Style>
    <Style TargetType="{x:Type Ellipse}">
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                <Setter Property="Fill" Value="Green">
                </Setter>
            </Trigger>
        </Style.Triggers>
    </Style>
</Ellipse.Style>

谢谢。

最佳答案

这纯粹是因为属性值的优先级。下面的链接得到了很好的解释。

WPF Trigger won't set property if set in Element

关于wpf - 鼠标悬停时更改椭圆的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8531516/

相关文章:

wpf - 从资源文件加载 WPF 样式

wpf - 命令绑定(bind)到用户控件拖放

.net - 字体文件中的什么属性使程序决定模拟粗体?

wpf - WPF 中的 StackPanel 和 DockPanel 有什么区别?

c# - 处理 wpf 应用程序中任何未处理的点击事件

c# - WPF C# 将标签绑定(bind)到包含自定义对象的 ObervableCollection 的 DataGrid

c# - 使用 WPF/C# 中的绑定(bind)获取更改的数据

javascript - 如何在c#中的wpf webbrowser控件中注入(inject)js文件

wpf - 如何更改 UniformGrid 控件的方向?

c# - 如何打开当前窗口?