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への対応は完了です。