矩形IsFocused并不起作用

时间:2017-03-16 10:34:06

标签: wpf xaml triggers styles

我有一个slider我希望它的拇指根据其状态改变样式:鼠标悬停或点击。 我确实试过改变拇指的风格,但没有明显的理由它没有做任何事情。 所以这个矩形,IsMouseOver工作正常,但正如我所说,IsFocused什么都不做。

我的XAML:

<Style x:Key="SliderRectStyle" TargetType="{x:Type Rectangle}">
<Setter Property="Fill" Value="#FF5B5B5B"/>
<Setter Property="Stroke" Value="#FF5B5B5B"/>
<Setter Property="Opacity" Value="1"/>
<Setter Property="mouseHelper:MouseDownHelper.IsEnabled" Value="True"/>
    <Style.Triggers>
        <Trigger Property="IsFocused" Value="True">
            <Setter Property="Fill" Value="#FFF0A300"/>
            <Setter Property="Stroke" Value="#FFF0A300"/>
        </Trigger>
        <Trigger Property="IsMouseOver" Value="True">
            <Setter Property="Fill" Value="#FFD1A139"/>
            <Setter Property="Stroke" Value="#FFD1A139"/>
        </Trigger>

   </Style.Triggers>

 </Style>

1 个答案:

答案 0 :(得分:1)

您需要将IsFocusable的{​​{1}}属性设置为Rectangle,并通过调用其true方法来关注它,实际关注它:

Focus()
<Rectangle x:Name="rect" Style="{StaticResource SliderRectStyle}" Width="100" Height="100" Focusable="True" 
                   PreviewMouseLeftButtonDown="rect_PreviewMouseLeftButtonDown" />