>

MouseEnter가 발생할 때 경계 배경 속성을 변경하는 트리거를 만들어야합니다. 다음을 수행했습니다.

<Border Width="20" Height="30" Focusable="True">
        <Border.Background>
            <LinearGradientBrush>
                <LinearGradientBrush.GradientStops>
                    <GradientStop Color="Aquamarine" Offset="0"/>
                </LinearGradientBrush.GradientStops>
            </LinearGradientBrush>
        </Border.Background>
        <Border.Style>
            <Style TargetType="{x:Type Border}">
                <Style.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="Background">
                            <Setter.Value>
                                <LinearGradientBrush>
                                    <LinearGradientBrush.GradientStops>
                                        <GradientStop Color="Aquamarine" Offset="0"/>
                                        <GradientStop Color="Beige" Offset="0.2"/>
                                        <GradientStop Color="Firebrick" Offset="0.5"/>
                                        <GradientStop Color="DarkMagenta" Offset="0.9"/>
                                    </LinearGradientBrush.GradientStops>
                                </LinearGradientBrush>
                            </Setter.Value>
                        </Setter>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </Border.Style>
    </Border>

하지만 작동하지 않습니다. 감사합니다.


  • 답변 # 1

    일반적인 실수. Border.Background 속성을 직접 설정하면 트리거에 의해 설정된 값이 항상 재정의됩니다. (로컬로 설정된 값의 우선 순위가 매우 높고 스타일의 우선 순위가 매우 낮습니다.)

    대신, "일반"배경을 다음과 같이 스타일로 옮겨야합니다 :

    <Border>
        <Border.Style>
            <Style TargetType="Border">
                <Setter Property="Background">
                    <Setter.Value>
                        <LinearGradientBrush>
                            <LinearGradientBrush.GradientStops>
                                <GradientStop Color="Aquamarine" Offset="0"/>
                            </LinearGradientBrush.GradientStops>
                        </LinearGradientBrush>
                    </Setter.Value>
                </Setter>
                <Style.Triggers>
                    <!-- the trigger you showed -->
                </Style.Triggers>
            </Style>
        </Border.Style>
    </Border>
    
    

  • 이전 matlab - 파이썬 interp1d 대 UnivariateSpline
  • 다음 html - 머리글과 바닥 글 사이의 DIV 높이를 100 %로 만드는 방법