Я попробовал Поведение, как я предложил в своем общем посте на посту 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
}
}