WPFで高DPIに対応できるようにPerMonitorV2を有効化する方法

スポンサーリンク

WPFで作成したソフトをスケーリング設定が異なるモニターで移動させると画面がぼやけます。

ちなみに以下のような環境の場合はスケーリング設定が異なる場合があります。

  • フルHDモニターと高解像モニター(4Kモニター、ノートPC/タブレットPCの内臓モニターなど)と併用している。

画面のぼやけはPerMonitorV2に対応することで解決可能です。

今回はWPFでPerMonitorV2に対応する方法について説明していきます。

PerMonitorV2に対応する

注意点

WindowsFormsで作成された画面を呼び出した場合、以下の不具合が発生する場合があります。

  • モニターのDPIに合わせた画面の拡大縮小が行われない
  • 画面レイアウトが崩れる

対応手順

1.ソリューションを右クリックし,追加→新しい項目をクリックします。

2.アプリケーションマニフェストを追加します。

3.アプリケーションマニフェストに以下の変更を加えます。

3.1.以下の箇所のコメントアウトを解除する。

  <!--
  <application xmlns="urn:schemas-microsoft-com:asm.v3">
    <windowsSettings>
      <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
      <longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
    </windowsSettings>
  </application>
  -->

3.2.コメントアウトを解除したコード内の以下の個所を修正する。

修正前

      <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
      <longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>

修正後

      <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">True/PM</dpiAware>
      <longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2, PerMonitor</longPathAware>

4.ソリューションをリビルドして動作確認します。

以上でPerMonitorV2への対応は完了です。

タイトルとURLをコピーしました