默认输入和空格键行为wpf应用程序

时间:2013-07-31 17:59:48

标签: wpf visual-studio default space enter

我正在尝试使用Visual Studio 2012 Express for Desktop在WPF(媒体播放器)中组合一个小应用程序,并希望使用空格键暂停。不幸的是,空格键以及回车键似乎有一个默认行为(在它们执行我为其编程的任何命令之前),它们重新执行或重新提升窗口中的最新事件(按钮点击,按键等)。

我已尝试在每个组合中重写OnKeydown,OnKeyUp,OnPreviewKeyDown和OnPreviewKeyUp,但没有多少覆盖会消除此行为。我还发现在我编写的其他WPF应用程序中也是如此,甚至在几个月前我组装的Windows Forms应用程序中也是如此。这是Visual Studio构建的所有应用程序的默认方面吗?更重要的是,有没有办法摆脱它?

1 个答案:

答案 0 :(得分:2)

如果您覆盖OnPreviewKeyDown,则可以添加所需的逻辑,然后将e.Handled设置为true,这样可以防止事件冒泡并导致您看到的行为。< / p>

private void Window_PreviewKeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Enter || e.Key == Key.Space)
    {
        //Your Logic
        e.Handled = true;
    }
}