C# で Windows 10 タブレット向けの GUI アプリケーションを作っています。
デスクトップモードで使う前提で、リサイズ可能なウィンドウを持ちます。
Windows タブレットでは基本的に本体を横長から縦長に回転させたとき、アプリケーションウィンドウの幅が画面幅を超えるときは画面に収まるように自動縮小されると思います。
再度縦長に戻した場合でも一度縮小されたものはそのままなので最初の状態には戻りません。
この動作自体は仕様なので問題とは考えていません。
最小化した状態では本体の回転による影響を受けません。
最小化→横長→縦長→横長 と回転させたとしても最小化の状態ならもとのサイズに戻すことができます。
作っているアプリケーションはタスクトレイ常駐型でタスクメニューには格納せず、Visible = false によって非表示にしています。
この状態で 非表示→横長→縦長→横長 と回転させた場合、縦長に合わせてウィンドウ幅が自動縮小され、再度表示した際にサイズが変わってしまいます。
そこで、非表示後に最小化する処理を加えました。
C#
1// タスクバーには表示しない 2Form1.ShowInTaskbar = false; 3 4// 最小化時 5Form1.Visible = false; 6Form1.WindowState = FormWindowState.Minimized;
最小化、復元自体はできているようにみえるのですが、最小化していても本体の回転により自動縮小されてしまいます。
試しに Visible = false を削除し、単純に最小化するだけにしてみたところ最小化中は本体の回転の影響を受けませんでした。しかし Visible = false がないと ShowInTaskbar = false なので最小化時にタスクメニューの上にコンパクトに表示されるだけで完全には消えてはくれません。最小化時は完全に消えた状態にしたいです。
このような状況で、最小化中は本体の回転の影響で自動リサイズされるのを防ぐにはどのようにすればいいのでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。