C# アプリケーションを DPI 対応にしたいと考えています。SetProcessDPIAware() と呼ばれる Windows API で使用可能なコマンドがありますが、問題は Windows Vista 以降のバージョンの Windows でのみ機能し、XP では機能しないことです。Windows のバージョンに関係なく、コントロール、ボタン、およびフォントの DPI を認識して正しく表示するにはどうすればよいですか?
質問する
3958 次
2 に答える
6
呼び出しSetProcessDPIAware
は、魔法のようにすべての DPI を認識させるだけではありません。その目的は、アプリが DPI 対応として正しく記述されていることを Windows に宣言することです。さらに、その使用は推奨されません。代わりに、マニフェストで DPI 認識を宣言することになっています。これに関する記事全体が MSDN にあります。
于 2011-02-07T22:30:48.873 に答える
2
この StackOverflow questionの DPI 設定にアプリケーションを応答させる方法については、ある程度詳細な回答を参照してください。
AutoScaleMode
短いバージョンでは、すべてのフォームを に変更できますScaleMode.Dpi
。
しかし、そのままにしておく方がよいでしょうScaleMode.Font
。DPIが上がるとフォントが大きくなります。
于 2011-04-03T12:45:39.243 に答える