.net 重复按钮不会失去焦点,并始终保持高亮显示

.net 重复按钮不会失去焦点,并始终保持高亮显示,.net,wpf,focus,repeatbutton,.net,Wpf,Focus,Repeatbutton,我正在研究我的上下控制,它工作得很好,但今天我注意到控制中的重复按钮有一个奇怪的问题。一旦我点击+/-重复按钮,它们就会以蓝色边框突出显示(这很好),但问题是,即使我点击页面上的其他按钮或控件,它们也会保持突出显示 这是截图- 这是我正在使用的xaml- <!-- RepeatButton styles --> <Style x:Key="RepeatButtonPathStyle" TargetType="Path"> <Sette

我正在研究我的上下控制,它工作得很好,但今天我注意到控制中的重复按钮有一个奇怪的问题。一旦我点击+/-重复按钮,它们就会以蓝色边框突出显示(这很好),但问题是,即使我点击页面上的其他按钮或控件,它们也会保持突出显示

这是截图-

这是我正在使用的xaml-

<!--  RepeatButton styles  -->

<Style
    x:Key="RepeatButtonPathStyle"
    TargetType="Path">
    <Setter
        Property="Width"
        Value="3" />
    <Setter
        Property="Height"
        Value="3" />
    <Setter
        Property="MinWidth"
        Value="3" />
    <Setter
        Property="MinHeight"
        Value="3" />
    <Setter
        Property="HorizontalAlignment"
        Value="Center" />
    <Setter
        Property="VerticalAlignment"
        Value="Center" />
    <Setter
        Property="Stretch"
        Value="None" />
    <Setter
        Property="StrokeThickness"
        Value="1" />
    <Setter
        Property="Stroke"
        Value="{Binding RelativeSource={RelativeSource AncestorType=RepeatButton},
Path=Foreground}" />
</Style>

<DataTemplate
    x:Key="IncreaseGlyph">
    <Path
        Data="M0,1.5 H3 M1.5,0 V3"
        Style="{StaticResource RepeatButtonPathStyle}" />
</DataTemplate>

<DataTemplate
    x:Key="DecreaseGlyph">
    <Path
        Data="M0,1.5 H3"
        Style="{StaticResource RepeatButtonPathStyle}" />
</DataTemplate>



有什么指示吗?

我想你应该更换这个设定器:

<Setter Property="Stroke" Value="{Binding RelativeSource=
{RelativeSource AncestorType=RepeatButton},Path=Foreground}" />

而是使用触发器:

<Style.Triggers>
  <Trigger Property="IsMouseOver" Value="true">
    <Setter Property="Stroke" 
            Value="{Binding RelativeSource={RelativeSource AncestorType=RepeatButton},
                      Path=Foreground}" />
  </Trigger>
</Style.Triggers>


这样,当您的触发条件为false(在这种情况下,鼠标不在)时,它会将笔划设置回默认值。

我发现解决此问题的唯一方法是在RepeatButton上设置
Focusable=“false”

谢谢chaosmaker,但这并不能解决问题;笔划只是设置+/-按钮的颜色,我觉得它与焦点问题无关。
<Style.Triggers>
  <Trigger Property="IsMouseOver" Value="true">
    <Setter Property="Stroke" 
            Value="{Binding RelativeSource={RelativeSource AncestorType=RepeatButton},
                      Path=Foreground}" />
  </Trigger>
</Style.Triggers>