C#2.0時代のゲームプログラミング(16)

# sisya 『中心点のあるディスプレイで最大化してもいいかな位におもってました。
ウインドウの基点はシステムの都合(別に左下でもいいはずだし)だから、対応してあげたい機能ですね。』

# yaneurao 『中心点がどの画面にも属さないということがあるんだけど(´ω`)
だから、中心点でやるぐらいなら面積でやるほうがまとも。』

# 気球 『個人的にはマウスの居るディスプレイで最大化して欲しいですが、これも駄目なパターンありなのでしょうか?』


実は単に


Form.WindowState = FormWindowState.Maximized
を実行したときは、“そういう”動作(マウスの居るディスプレイで最大化)になるようだ。ただし、そのへんはひょっとするとOS依存かも知れないので、将来のOSでどうなっているかはわからない。


Windowsアプリケーションをフルスクリーンで表示するには?で書かれているように、


WindowStateプロパティを「FormWindowState.Normal」に設定する
FormBorderStyleプロパティを「FormBorderStyle.None」に設定する
WindowStateプロパティを「FormWindowState.Maximized」に設定する

という手順は全画面化(≒タスクバーを隠す最大化)のときの定石なのだが、困ったことにmulti displayでのフルスクリーン化(≒解像度の変更をともなう全画面化)のときはこの方法ではまずいのだ。(つづく)