[スポンサードリンク]
2016-05-09 20:58:28
【MonoGame】高DPI環境のWindowsによるスケーリングを無効化する
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>


  • 5:プロジェクトをビルドして実行


以上で、高DPI環境でも画面のスケーリングが行われなくなります。


[スポンサードリンク]
コメント