Visual Studio の Windows フォーム デザイナーでの HDPI/スケーリングに関する問題を修正するには、DPI 認識を無効にします。

適用対象:yesVisual Studio noVisual Studio for Mac noVisual Studio Code

この記事では、Visual Studio を DPI 非対応プロセスとして実行することにより、HDPI モニター上の Windows フォーム デザイナーでスケーリングの制限を解決する方法について説明します。

Visual Studio はドット/インチ (DPI) 対応アプリケーションであり、ディスプレイが自動的に拡大縮小します。 アプリケーションが DPI 対応ではない場合、オペレーティング システムによってアプリケーションがビットマップとして拡大縮小します。 この動作は DPI 仮想化とも呼ばれています。 それでも、アプリケーションでは、100% のスケーリングまたは 96 DPI で実行されていると認識されます。

Visual Studio の Windows フォーム デザイナーにはスケーリングのサポートがないため、高解像度 (HDPI) モニターでフォームを開くと、表示に関する問題が発生する可能性があります。 たとえば、次の画像のように、コントロールが重なって見えることがあります。

HDPI モニターの Windows フォーム デザイナー

HDPI モニター上で Windows フォーム デザイナーからフォームを開くと、Visual Studio では情報バーが表示されます。

DPI 非対応モードで再起動するための Visual Studio の情報バーのスクリーンショット。

ヒント

  1. 情報バーを閉じても、100% のスケーリングで Visual Studio を再起動したい場合は、可能です。 DevEnv.exe ツールを使用して、それを行います。
  2. デザイナーで作業しておらず、フォームのレイアウトを調整する必要がない場合、情報バーを無視し、コード エディターまたはその他の種類のデザイナーで作業を続行できます。 (情報バーを引き続き表示させないように、通知を無効にすることもできます。) Windows フォーム デザイナーのみが影響を受けます。

Visual Studio を DPI 非対応プロセスとして再起動する

この問題に対して推奨される解決策は、DPI 非対応プロセスとして Visual Studio を再起動することです。 これを行うには、Windows フォーム デザイナーでフォームを開いたときに表示される黄色の情報バーのオプションを選択します。

Visual Studio を DPI 非対応プロセスとして実行すると、デザイナー レイアウトの問題は解決されますが、フォントがぼやけて表示され、XAML デザイナーなどの他のデザイナーで問題が発生する場合があります。 Visual Studio が DPI 非対応プロセスとして実行されているとき、"Visual Studio is running as a DPI-unaware process.WPF and XAML designers might not display correctly." (Visual Studio が DPI 非対応プロセスとして実行されています。WPF デザイナーや XAML デザイナーが正しく表示されない可能性があります。) という別の黄色い情報メッセージが Visual Studio に表示されます。また、この情報バーには、Visual Studio を DPI 対応プロセスとして再起動するオプションが表示されます。

注意

  • DPI 非対応のプロセスとして再起動するオプションを選択するとき、Visual Studio でツール ウィンドウのドッキングを解除している場合、ツール ウィンドウの位置が変更されることがあります。
  • 既定の Visual Basic プロファイルを使用する場合、または [ツール]>[オプション]>[プロジェクトおよびソリューション] で、 [新しいプロジェクトを作成時に保存する] オプションの選択を解除している場合、Visual Studio では、DPI 非対応プロセスとして再起動したとき、プロジェクトを再び開くことができません。 しかし、 [ファイル]>[最近使ったプロジェクトとソリューション] を選択することで、プロジェクトを開くことができます。

Note

  • DPI 非対応のプロセスとして再起動するオプションを選択するとき、Visual Studio でツール ウィンドウのドッキングを解除している場合、ツール ウィンドウの位置が変更されることがあります。
  • 既定の Visual Basic プロファイルを使用する場合、Visual Studio では、DPI 非対応プロセスとして再起動したとき、プロジェクトを再び開くことができません。 しかし、 [ファイル]>[最近使ったプロジェクトとソリューション] を選択することで、プロジェクトを開くことができます。

Windows フォーム デザイナーで作業が完了したら、Visual Studio を DPI 対応プロセスとして再起動することが重要です。 DPI 非対応モードで実行されているときに Visual Studio を閉じて再び開くと、再び DPI 対応になります。 また、情報バーの [DPI 対応のプロセスとして Visual Studio を再起動します] オプションを選択できます。

ディスプレイのスケーリングを 100% に設定する

このオプションを使用すると、Windows 11 でディスプレイのスケーリング設定を 100% に設定し、問題を解決できます。 これを行うには、タスク バーの検索ボックスに「ディスプレイ設定」と入力し、[ディスプレイの設定を変更します] を選択します。 [設定] ウィンドウで、 [Change the size of text, apps, and other items](テキスト、アプリ、その他の項目のサイズを変更します)[100%] に設定します。 しかしながら、ユーザー インターフェイスが小さすぎて使いづらくなるため、ディスプレイ スケーリングを 100% に設定することは望ましくない場合もあります。

DevEnv.exe コマンド ライン ツールを使用してスケーリングを無効にする

このオプションでは、コマンド ラインでスケーリング設定を管理できます。devenv.exe は、100% のスケール モードで実行するために、/noscale をコマンドライン パラメーターとして取ります。 その方法は次のとおりです。

  1. Visual Studio メニュー バーから [ツール]>[コマンド ライン]>[開発者コマンド プロンプト] を選択します。
  2. 次に、「devenv /noScale」と入力します。

その他のオプション

前述のオプションに加えて、次のことができます。

トラブルシューティング

Visual Studio で DPI 対応移行が予想どおり動作しない場合、レジストリ エディターで HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\devenv.exe サブキーに dpiAwareness 値が含まれていないことを確認してください。 ある場合、削除してください。