Почему кнопка переключателя WPF пульсирует один раз - PullRequest
5 голосов
/ 15 июня 2010

В приложении для настольного компьютера у меня есть кнопка переключения:

<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>

Для события Checked я устанавливаю значение и затем выполняю метод FilterView (); // пропуская код

Непроверенное состояние как раз наоборот. сбрасывает переменную и снова выполняет метод

Вопрос, который у меня возник, заключается в том, что я заметил, что когда я снимаю флажок с переключателя, кнопка продолжает пульсировать или мигать (переходя от синего к хромированному), как будто она все еще имеет фокус. Кнопка будет оставаться такой до тех пор, пока не будет нажата другая кнопка.

Есть ли способ убрать этот фокус, чтобы, когда кнопка не отмечена, кнопка возвращалась в состояние без проверки без мигающего / пульсирующего цвета.

  • Как вы можете видеть сверху, это стандартная кнопка переключения без стилей или пользовательских
  • Я проверял это только на обычной кнопке и обнаружил, что то же самое происходит при нажатии кнопки, которая будет продолжать пульсировать / мигать до тех пор, пока не будет нажата другая кнопка.

Как вы обойти это или предотвратить этот эффект.

Спасибо

Ответы [ 2 ]

11 голосов
/ 01 марта 2012

Установите кнопку Focusable="False".

5 голосов
/ 15 июня 2010

Это происходит из-за кнопки Chrome, встроенной в шаблон по умолчанию для элемента управления.Ваш единственный обходной путь - повторно шаблон Button. Эта статья должна помочь вам начать.

...