Как заставить кнопку silverlight реагировать только на мышь - PullRequest
1 голос
/ 21 ноября 2011

Я использую кнопку-переключатель и хочу, чтобы она меняла свое состояние только из-за щелчка мыши.Поведение по умолчанию состоит в том, что если фокус находится на кнопке, то пользователь может нажать «пробел» или «ввод», чтобы «щелкнуть» ее.Я хочу отменить это, но все же позволить кнопке реагировать на щелчок мыши как обычно (вызывая событие щелчка).

есть идеи?

Спасибо

Ответы [ 2 ]

2 голосов
/ 21 ноября 2011

Вы можете установить для свойства IsTabStop значение false, в этом случае вы не сможете сфокусировать кнопку и, следовательно, не сможете реагировать на клавиатуру.

1 голос
/ 22 ноября 2011

Я попробовал Поведение, как я предложил в своем общем посте на посту AndrewS, но обнаружил, что событие KeyDown не захватывает пробел или событие ввода.Вы можете захватить событие на более высоком уровне и отменить его, если это пробел или клавиша ввода.

XAML:

<StackPanel KeyUp="sp_KeyUp">
  <ToggleButton x:Name="toggleButton" content="toggle me" width="120" height="20"/>
</StackPanel>

Код сзади:

public void sp_KeyUp(object sender, KeyBoardEventArgs e)
{
  if(e.Key == System.Windows.Input.Key.Enter || e.Key == System.Windows.Input.Key.Space)
  {
    e.Handled = true; // this should cancel the event
  }
}
...