従来の WinForms アプリを使用しており、セッション間でウィンドウの位置とサイズを保存したいと考えています。FormClosing および Load イベント中にGetWindowPlacementおよびSetWindowPlacementを使用しています。私が得ている問題は、より高い DPI 設定 (中、サイズ 125% など) でサイズが膨張し続けることです。特定のサイズで SetWindowPlacement を呼び出しますが、GetWindowPlacement が呼び出されると、ウィンドウが最初から同じサイズであったとしても、それらの数値は 25% 大きくなります。フォーム内のサイズ変更可能な要素のサイズを保存する場合にも、同じ種類の問題が存在します。
新しい WinForms プロジェクトを作成すると、これで問題なく動作します。より高い DPI で実行しても、サイズは安定しています。プロジェクトの腸内にいくつかのレガシー設定があるか、それを台無しにしている難解なフォーム設定があると思いますが、どこにあるのかわかりません。
両方のプロジェクトでIsProcessDPIAwareを呼び出しましたが、どちらもtrue
. 誰がこれを引き起こしているのか知っていますか?