★今日の課題★
Visual Studio 2022を起動するとデザイン画面が100%スケールではない。
Microsoft Visual Studio 2022
マイクロソフト社が提供するコード開発環境です。
今では様々な言語が使える統合環境となっています。
筆者がこのシリーズを使い始めたのは『Visual Basic 6.0』という製品でしたので、当時は『BASIC』専用のソフトを買いました。
当時いくらで買ったか覚えていませんが、ヨドバシカメラの梅田店のソフトコーナーに行きました。
いまではダウンロードで、しかも無償で手に入る、時代が大きく変わりました。
【参考】Microsoft Visual Studio 2022
高解像度画面で発生する事象
ノートパソコンの標準搭載画面ではこの事象は発生しません。
外部ディスプレイにHDMIケーブルで接続し、『3480×2160』で表示していると起こる現象です。

自動スケールが影響?
高解像度ディスプレイを接続した状態でVisual Studio 2022のプロジェクトを起動すると、毎回、ズームアップしたようなスケールで開きます。
コード入力画面では見やすさの違い程度のことですので良いですが、デザイン画面は違います。
まったく違うサイズのフォームが表示され、オブジェクトがズレた位置に配置されます。
スケールが違っている事を知らずに修正してしまうと、ビルドしたときに異常が発生します。
実際、最初の頃は修正して失敗しました。

プロパティからの個別設定
以前、イラストレーターの表示が異常である際には、実行ファイルを右クリックして現れるプロパティから『高DPIスケール設定の上書き』を操作することで調整できました。
ただし、Visual Studio 2022はEXEファイルを右クリックしても『互換性』のタブがないので、この操作が実行できません。
【参考】Adobe CS6 高解像度画面対応 – 今日の課題 –
レジストリ
Windowsマークをクリックして現れるスタート画面で『レジストリ』と入力するとレジストリエディターというアプリを起動することができます。
現れる画面はエクスプローラーのような感じで左側にフォルダ名、右側に属するファイル名、という感じになります。
解決策(方法)
解決方法は、レジストリを追加するという姑息的手段でした。
色々と試したのですが、上手くいかなかったり、アップデート後が恐ろしいなと思ったりしたので、作業1つでできて削除もしやすいレジストリを選びました。
手順1.レジストリエディタを起動
スタートメニューで『レジストリ』と入力することで候補されるレジストリエディタを起動します。

手順2.一覧から階層を下げる
レジストリから『HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers』を開きます。
HKEY_CURRENT_USER
SOFTWARE
Microsoft
Windows NT
CurrentVersion
AppCompatFlags
Layers

- HKEY_CURRENT_USER…HKEYはレジストリハイブキー、CURRENT_USERは現在のユーザー
- SOFTWARE…ソフトウェア群を指定
- Microsoft…マイクロソフト製品を指定
- Windows NT…ウィンドウズNT関連製品を指定
- CurrentVersion…Currentは現在、VersionはバージョンなのでWindowsNT群の現在のバージョン群を指定
- AppCompatFlags…アプリケーションの互換性フラグを指定
- Layers…レイヤーを指定
すなわち、ここで互換レイヤ設定ができるようになる訳です。
手順3.文字列値を追加
レジストリエディターで互換レイヤ設定(Layers)を開いた状態でメニューの『編集』から『新規』を選び『文字列値』を選択します。

手順4.EXEファイルフルパス入力
『名前』欄にはVisula Studioのフルパスを入力します。
今回はVisula Studio 2022なので下記のとおりでした。
C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\devenv.exe

パスがわからないときは、スタートメニューでVisual Studioを右クリックして現れるメニューから『ファイルの場所を開く』を選択します。
するとショートカット一覧のようなエクスプローラーが開くので、その中からさらにVisual Studioを選んで右クリックし『ファイルの場所を開く』を選択します。
すると、CドライブのVisual Studioの保存されているフォルダと実行ファイル(EXEファイル)が現れますので、そのフルパスを取得して名前欄に入力します。

- C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\devenv.exe
- C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\devenv.exe
- C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\devenv.exe
手順5.修正(編集)
追加されたVisual Studioのフルパスを右クリックして『修正(M)』を選択します。

そこで現れるインプットボックスに『DPIUNAWARE』と入力します。
DpiUnawareは『アプリケーション ウィンドウは DPI の変更に合わせて拡大縮小されず、常に 100% の倍率が想定されます。』という説明がMicrosoftから提供されています。

設定完了
以上で設定は終わりです。
Visual Studio 2022を起動しても、100%以外のスケールで表示されることはなくなりました。
【参考】Microsoft:Visual Studio の Windows フォーム デザイナーでの HDPI/スケーリングに関する問題を修正するには、DPI 認識を無効にします。
これまでの記事
AmpiTaで投稿したこれまでの関連記事をリンクしておきます。
おわりに
今回はVisual Studioが150%スケールで起動してしまう問題の解消を図りました。
とりあえず、今日の時点では解決に至っていますが、何らかのUpdateなどによって再び未解決になり得ることも想定しながら、使い続けていきたいと思います。
最後までお読みいただき、ありがとうございました。
