【问题标题】:Capturing Key Press Event in my WPF Application which do not have focus在我的 WPF 应用程序中捕获没有焦点的按键事件
【发布时间】:2011-05-26 17:59:36
【问题描述】:

我在 WPF 中开发了一个屏幕键盘。我需要获取密钥 按下事件(通过键盘)以跟踪 Caps Lock、Shift 等(是否按下)。 请注意,当任何其他应用程序时,我的应用程序会失去焦点 (比如记事本)已打开。

谁能建议如何在 WPF 中实现这一点? 简而言之,我的 WPF 应用程序甚至需要捕获按键事件 虽然它没有焦点。请帮忙。

【问题讨论】:

标签: c# wpf


【解决方案1】:

这对我很有帮助:Disable WPF Window Focus

这和你的问题不完全一样,他试图在没有获得焦点的情况下捕捉一个事件,但这是一个很好的起点

【讨论】:

    【解决方案2】:

    我在后面使用了一个简单的代码:

    在 xaml 中,我使用了一个名为 MyTestKey 的 KeyDown 事件。

    <Window x:Class="MyApp.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            KeyDown="myTestKey" >
    

    这就是我检查数字 1 的 keydown 例程的样子:

    private void myTestKey(object sender, KeyEventArgs e)
    {
                if ((e.Key == Key.D1) || (e.Key == Key.NumPad1))
                {
                    //do some stuff here
                    return;
                }
    }
    

    这是获取任何键的简单方法。我希望这会有所帮助。

    【讨论】:

    • 应用非焦点时不起作用,只对焦点应用有效。错误的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-17
    • 1970-01-01
    • 2016-03-28
    • 2010-11-12
    • 2010-10-22
    • 2017-02-23
    • 1970-01-01
    相关资源
    最近更新 更多