MonoGameでゲーム制作シリーズ。
Windows8.1以上で高DPI環境だと発生するスケーリングを無効化する手順です。
環境:VisualStudio2015
フルHD環境等だと、フルHD以下の解像度だと自動的にスケーリングされてしまい、画像が拡大されてしまいます。拡大されるだけならいいですが、取得できるマウス座標と、実際の画面の座標がずれてしまったりと、そのままでは問題が出てきます。
exeファイルのプロパティから「高DPI設定では画面のスケーリングを無効にする」にチェックを入れれば解決はしますが、ユーザーの方に、チェックを入れてもらうわけにはいかないので、スケーリングを無効化したいと思います。
ちなみに、この設定をすると「高DPI設定では画面のスケーリングを無効にする」にチェックがついた状態のexeファイルがビルドできるようになります。
以下のサイトを参考にさせていただきました!
https://code.msdn.microsoft.com/windowsapps/Windows-DPI-Aware-e758cbbb
- 1:ソリューションエクスプローラーからプロジェクトを右クリック⇒追加⇒新しい項目
- 2:[インストール済み]の[Visual C#アイテム]から「アプリケーション マニフェスト ファイル」を選択して「追加(A)」
- 3:ソリューションに追加された「app.manifest」をダブルクリック
- 4:入力されている内容を削除して以下内容を張り付ける。
<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0"
xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" >
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>true</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
</assembly>
以上で、高DPI環境でも画面のスケーリングが行われなくなります。