アプリケーションを強制的に高dpiにスケーリングするにはどうすればよいですか?
開発者が実際にそうではないときに、アプリケーションが高dpiを認識していると見せかけます。dpiスケーリングを強制するにはどうすればよいですか?
HighDpiAware
アプリケーションが実際には適用されない場合に、Microsoftが互換性シムを適用したアプリケーションがあると想定します。dpiスケーリングを強制するにはどうすればよいですか?
Windowsにアプリケーションにdpiスケーリングを適用させるにはどうすればよいですか?
編集:高dpiスケーリングとは何ですか?
すべてのユーザーが96dpiでWindowsを実行しているわけではありません。すべてのボタンが75x23ピクセルであるとは限りません。すべてのツールバーが25ピクセルの高さであるとは限りません。また、すべてのツリービューグリフが16x16であるとは限りません。ユーザーがWindows用に別のdpi設定を選択した場合、すべてを適切にスケーリングする必要があります。
問題は、高dpiの設定をうまく処理して仕事をする開発者がほとんどいないことです。せいぜいすべてが「同じサイズ」のままです。つまり、すべてがちっぽけなように見えます。最悪の場合、テキストはクリップされ、コントロールは表示されず、フォームが誤ってレイアウトされます。
Windows Vistaから開始し、デスクトップコンポジションの力を活用して、Microsoftは開発者の仕事をあきらめ、現在はアプリケーションに横たわっています。ユーザーが96dpiで実行していることをアプリに伝えます。その後、Windowsはビデオカードとデスクトップコンポジションを使用して、フォームを拡大します。
利点:フォームのコンテンツは読みやすいサイズになります。
短所:すべてが少しあいまいになります。
この「高dpiスケーリング」機能は、ユーザーの裁量でのみ機能し、次のものが必要です。
- Windows Vista以降
- 有効にするデスクトップコンポジション
- ユーザーが「Windows XPスタイルのスケーリングを使用する」をオフにする
- ユーザーがアプリケーションのスケーリングを無効にしないようにする
開発者は、高dpiスケーリングをオプトアウトできます。アプリケーションを適切に記述しようと努力し、高dpiを適切に処理できることがわかっている場合。マニフェストエントリを実行可能ファイルに追加して、このスケーリングをオプトアウトし、「high-dpi対応」であることを宣言します。
アプリケーションがユーザーの設定(フォントフェイス、フォントサイズ、dpi設定を含む)を尊重する方法のトピックは、の質問ですstack overflow
。「高dpi認識」を宣言するマニフェストエントリの構文も同様です。
スーパーユーザーに関するこの質問は、実際にアプリケーションが高dpiを認識していない場合に、先に進んで高dpiを認識するマニフェストエントリを追加した開発者を無視する方法です。彼らはWindowsにスケーリングを無効にするように言ったが、彼らは実際にアプリケーションをテストしなかった。「高DPI対応」マニフェストエントリを備えたソフトウェアがあり、現在、アプリケーションは「大きなフォント」(例:120dpi)では使用できません。