カテゴリー
ICT・AI・robo

Visual Studio 100%スケール表示 ~今日の課題~

★今日の課題★
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 認識を無効にします。

【参考】Microsoft:HighDpiMode 列挙型




これまでの記事

 AmpiTaで投稿したこれまでの関連記事をリンクしておきます。




おわりに

 今回はVisual Studioが150%スケールで起動してしまう問題の解消を図りました。

 とりあえず、今日の時点では解決に至っていますが、何らかのUpdateなどによって再び未解決になり得ることも想定しながら、使い続けていきたいと思います。

 最後までお読みいただき、ありがとうございました。

解決

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です