2

C# アプリケーションを DPI 対応にしたいと考えています。SetProcessDPIAware() と呼ばれる Windows API で使用可能なコマンドがありますが、問題は Windows Vista 以降のバージョンの Windows でのみ機能し、XP では機能しないことです。Windows のバージョンに関係なく、コントロール、ボタン、およびフォントの DPI を認識して正しく表示するにはどうすればよいですか?

4

2 に答える 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 に答える