c# - 如何在 WPF 中为所有窗口(整个应用程序)设置事件处理程序?

标签 c# wpf event-handling keydown

如何为整个解决方案而不是单个窗口设置事件处理程序(例如 keydown)?

最佳答案

在您的应用程序类 (App.cs) 中注册一个全局事件处理程序,如下所示:

public partial class App : Application
{
    protected override void OnStartup(StartupEventArgs e)
    {
        base.OnStartup(e);

        EventManager.RegisterClassHandler(typeof(Window), Window.KeyDownEvent, new RoutedEventHandler(Window_KeyDown));
    }

    void Window_KeyDown(object sender, RoutedEventArgs e)
    {
        // your code here
    }
}

这将处理您应用中任何 WindowKeyDown 事件。您可以将 e 转换为 KeyEventArgs 以获取有关按下的键的信息。

关于c# - 如何在 WPF 中为所有窗口(整个应用程序)设置事件处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10027182/

相关文章:

c# - 如何获取 null 而不是 KeyNotFoundException 按键访问字典值?

c# - 如何反转 WPF Storyboard动画?

c# - 使用特定参数从 SQL 数据库填充组合框

c# - 如何引用不在代码隐藏中但在另一个对象中的事件处理程序?

perl - AnyEvent 计时器问题

c# - 浮点运算 - Double 类型的模运算符

c# - 如何获取字符串数组列表的最后一个元素?

Wpf 动画最佳实践

java - Java 应用程序级别的关键事件

c# - 将 Excel 中的行转换为自定义实体