【问题标题】:Default enter and space key behavior wpf applications默认输入和空格键行为 wpf 应用程序
【发布时间】:2013-07-31 17:59:48
【问题描述】:

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

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

【问题讨论】:

    标签: wpf visual-studio default space enter


    【解决方案1】:

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

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

    【讨论】:

    • 像魅力一样工作。非常感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    • 2013-06-07
    • 2019-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多