最大化/最小化表单与两个按键方法不起作用

本文关键字:两个 不起作用 方法 最小化 表单 最大化 | 更新日期: 2023-09-27 18:13:19

我试图得到一个WPF表单最大化或最小化当"进入"被按下。但是,在调试时,它不起作用。
我可以这样写,这样它就可以最小化而不是最大化,但不能在执行一个操作时同时做到这两点。如果有人能给我指出正确的方向,我将不胜感激。
我目前使用"Enter"作为两个键的组合的占位符,我还没有决定。我知道,这对有些人来说可能很烦人,但目前对我来说很有效。
另外,我正在尝试制作一个可以在后台运行的通用叠加程序,当按下组合键时可以弹出。

private void MainWindow_KeyDown(object sender, KeyEventArgs e)
{
    if (this.WindowState == WindowState.Minimized)
    {
        if (e.Key == Key.Enter)
        {
            this.WindowState = WindowState.Maximized;
        }
    }
}
private void MainWindow_KeyDown2(object sender, KeyEventArgs e)
{
    if (this.WindowState == WindowState.Maximized)
    {
         if (e.Key == Key.Enter)
         {
             this.WindowState = WindowState.Minimized;
         } 
    }
}

最大化/最小化表单与两个按键方法不起作用

像这样试试

private void MainWindow_KeyDown(object sender, KeyEventArgs e)
{        
    if (e.Key == Key.Enter)
    {
         if (this.WindowState == WindowState.Minimized)
         {
             this.WindowState = WindowState.Maximized;
         }
         else
         {
             this.WindowState = WindowState.Minimized;
         }
    }
}

一旦最小化,应用程序将不会引发或响应KeyDown等事件。

然而,当它处于正常或最大化视图状态时,这工作得很好:

private void Form1_KeyUp(object sender, KeyEventArgs e)
    {
        if (e.Key == Key.Enter)
        {
            if (this.WindowState == WindowState.Normal)
            {
                this.WindowState = WindowState.Maximized;
            }
            else
            {
                this.WindowState = WindowState.Normal;
            }
        }
    }