更改WPF中鼠标悬停上的子控件的样式

更改WPF中鼠标悬停上的子控件的样式,wpf,properties,styles,controls,rectangles,Wpf,Properties,Styles,Controls,Rectangles,我有一个自定义控件,它包含两个矩形和几个文本框。我想更改鼠标上方矩形的背景色 我添加触发器如下: <Rectangle Grid.Column="1" Fill="#FF383838" Grid.ColumnSpan="3" Margin="0,4,4,4"> <Rectangle.Style> <St

我有一个自定义控件,它包含两个矩形和几个文本框。我想更改鼠标上方矩形的背景色

我添加触发器如下:

  <Rectangle 
            Grid.Column="1" 
            Fill="#FF383838" 
            Grid.ColumnSpan="3" 
            Margin="0,4,4,4">

            <Rectangle.Style>
                <Style TargetType="{x:Type Rectangle}">
                    <Setter Property="Fill" Value="#FF383838" />
                    <Style.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter Property="Fill" Value="#FF575757" />
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </Rectangle.Style>

        </Rectangle>


但由于矩形是我控件的一部分,我假设事件没有触发。

通过XAML设置属性将应用于您尝试设置的样式属性。要解决此问题,请删除
Fill=#FF383838
,因此您应该:

<Rectangle Grid.Column="1"
           Grid.ColumnSpan="3"
           Margin="0,4,4,4">
//... rest of code here

//... 剩下的代码在这里
尝试以下代码:

<Window.Resources>
        <Style TargetType="Rectangle" x:Key="test">
            <Setter Property="Fill" Value="#FF383838" />
            <Style.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Fill" Value="#FF575757" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </Window.Resources>
    <Rectangle Style="{StaticResource test}" />