2

我试图让 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;
         } 
    }
}
4

2 回答 2

3

像这样试试

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;
         }
    }
}
于 2013-05-13T03:56:33.720 回答
1

一旦最小化,应用程序将不会引发或响应 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;
            }
        }
    }
于 2013-05-13T03:57:09.850 回答