我正在使用一个切换按钮,我希望它只会因为鼠标点击而改变其状态。默认行为是,如果焦点在按钮上,则用户可以按“空格”或“回车”来“单击”它。我想取消此操作,但仍允许按钮像往常一样响应鼠标单击(通过触发单击事件)。
有什么想法吗?
谢谢
发布于 2011-11-22 02:02:35
您可以将IsTabStop属性设置为false,在这种情况下,您将无法使按钮成为焦点,因此它将无法对键盘做出响应。
发布于 2011-11-22 10:18:52
我尝试了一个行为,就像我在AndrewS的帖子中建议的那样,但发现KeyDown事件没有捕获空格或enter事件。您可以在更高级别捕获事件,如果是空格键或enter键,则取消该事件。
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
}
}https://stackoverflow.com/questions/8216170
复制相似问题