【发布时间】:2011-11-21 17:50:53
【问题描述】:
我正在使用一个切换按钮,我希望它只因鼠标点击而改变其状态。默认行为是,如果焦点在按钮上,则用户可以按“空格”或“回车”来“单击”它。我想取消这个,但仍然允许按钮像往常一样响应鼠标点击(通过触发点击事件)。
有什么想法吗?
谢谢
【问题讨论】:
标签: silverlight events button keyboard
我正在使用一个切换按钮,我希望它只因鼠标点击而改变其状态。默认行为是,如果焦点在按钮上,则用户可以按“空格”或“回车”来“单击”它。我想取消这个,但仍然允许按钮像往常一样响应鼠标点击(通过触发点击事件)。
有什么想法吗?
谢谢
【问题讨论】:
标签: silverlight events button keyboard
您可以将 IsTabStop 属性设置为 false,在这种情况下您将无法聚焦按钮,因此无法响应键盘。
【讨论】:
我尝试了我在 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
}
}
【讨论】: