为什么WPF切换按钮脉冲一旦未选中

rlc*_*ews 5 wpf wpf-controls togglebutton

在桌面应用程序中,我有一个切换按钮:

<ToggleButton x:Name="CFStglBtn" Checked="cfsCBox_Checked"
              Unchecked="cfsCBox_Unchecked"
              IsChecked="True" HorizontalAlignment="Left" Margin="5,0,0,0">
    <StackPanel Orientation="Horizontal">
        <Image Source="assets\telephone.png" Margin="3,0,0,0" />
        <TextBlock Text="CFS" FontSize="10" Margin="5,5,5,0"
                   Foreground="DarkSlateGray"/>
    </StackPanel>
</ToggleButton>
Run Code Online (Sandbox Code Playgroud)

对于Checked事件,我设置一个值,然后执行方法FilterView(); //省略代码

未经检查的状态正好相反.重置变量并再次执行该方法

我的问题是我注意到,当我取消选中切换按钮时,按钮继续脉冲或闪烁(从蓝色变为铬色),就好像它仍然具有焦点一样.按钮将保持这样,直到单击另一个按钮.

有没有办法去除这个焦点,以便当取消选中该按钮时,按钮返回到未检查状态,没有闪烁/脉冲颜色.

  • 从上面可以看出,这是一个标准的切换按钮,没有样式或自定义
  • 我只用一个常规按钮测试了这个,我发现点击时按钮会继续脉冲/闪烁,直到点击另一个按钮.

你如何解决这个问题或防止这种影响发生.

谢谢

Mar*_*ast 12

设置按钮Focusable="False".


Cha*_*lie 5

这是因为控件的默认模板中内置了按钮chrome.您唯一的解决方法是重新模板化Button.这篇文章应该可以帮到你.