2

「Enter」が押されたときに最大化または最小化する WPF フォームを取得しようとしています。ただし、デバッグ時には機能しません。
最小化はできるが最大化はできないが、1 つのアクションが実行されると両方を実行できないように、これを記述できます。
誰かが私を正しい方向に押し進めることができれば、それは大歓迎です。
現在、まだ決めていない 2 つのキーの組み合わせのプレースホルダーとして「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 に答える