C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: デザイナーのスケーリングを無効化する方法


(過去ログ 175 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■100704 / inTopicNo.1)  デザイナーのスケーリングを無効化する方法
  
□投稿者/ 貝 (1回)-(2022/10/19(Wed) 19:47:20)

分類:[.NET 全般] 

2022/10/19(Wed) 19:54:04 編集(投稿者)

Visual Studio 2015でVB.NETを使用してプログラムを開発しております。


これまで、Win10の環境でディスプレイのスケーリングを100%にして開発してきたのですが、これを125%に変更しました。
すると、これまで他のスケーリングを100%にした他のPCで、
フォーム内のデザイン全体がわずかに大きくなってしまい、
フォームから一部はみ出してしまう問題が起きました。

そのため、Visual Studio のデザイナ上だけスケーリングを100%にして表示すれば
問題が解決すると思うのですがどのように設定すれば良いですか?



https://qiita.com/mono1729/items/a93505a5cb3fe194b7dc

このページを見ると、
高DPI環境下だと、
「100% のスケールでVisual Studio を再起動します」
をメッセージが表示されるとあるのですが
私の環境では表示されません。


AutoScaleModeプロパティをDpiモードにする
というのも試してみましたがうまくいきませんでした。


どこの設定を変えればよろしいでしょうか?


引用返信 編集キー/
■100706 / inTopicNo.2)  Re[1]: デザイナーのスケーリングを無効化する方法
□投稿者/ ぼーちゃん (37回)-(2022/10/20(Thu) 08:56:36)
一応確認ですがWindows Formsアプリの話ですよね?
私の環境だと、Formsならデザイナ画面を開いた時URL通りのメッセージが出ますね。
WPFだと元々高DPI対応の為か出ません。


面倒ですが、以下の手順で強制的に100%スケールで再起動できるようです。

https://learn.microsoft.com/ja-jp/visualstudio/designers/disable-dpi-awareness?view=vs-2022

> [ツール]>[コマンド ライン]>[開発者コマンド プロンプト] を選択します。
次に、「devenv /noScale」と入力します。
引用返信 編集キー/
■100707 / inTopicNo.3)  Re[2]: デザイナーのスケーリングを無効化する方法
□投稿者/ 貝 (2回)-(2022/10/20(Thu) 10:28:36)
ありがとうございます。

私の環境では、

[ツール]>[コマンド ライン]>[開発者コマンド プロンプト]

がなかったため、
スタートメニューから、開発者コマンド プロンプトを実行しました。


そのため、以下のようにパスも同時に入力しました。

devenv "D:\sss.sln" /noScale



しかし、以下のエラーが出てしまいます。

どうもnoScaleというオプションがないように思います。

これはどうすれば良いでしょうか?


Microsoft Visual Studio 2015 バージョン 14.0.25420.1.
Copyright (C) Microsoft Corp. All rights reserved.

コマンド ラインが無効です。不明なスイッチ: noScale。

使い方:
devenv [solutionfile | projectfile | anyfile.ext] [switches]

devenv の最初の引数は通常ソリューション ファイルまたはプロジェクト ファイルです。
それ以外のファイルでも、 エディターで自動的に開くように最初の引数にそのファイルを指定することも
できます。プロジェクト ファイルを指定すると、IDE は、プロジェクト ファイルの親ディレク
トリにある、プロジェクト ファイルと同じベース名を持つ .sln ファイルを探します。
そのような .sln ファイルが存在しない場合は、 IDE は、プロジェクトを参照する
単一の .sln ファイルを探します。そのような単一の .sln ファイルが存在しない場合は、
プロジェクト ファイルと同じベース名を含む 既定の .sln
ファイル名と共に保存されていないソリューションを作成します。

コマンド ラインでのビルド:
devenv solutionfile.sln /build [ solutionconfig ] [ /project projectnameorfile [ /projectconfig name ] ]
使用できるコマンド ラインのスイッチ:

/Build 指定されたソリューション構成でソリューションまたはプロジェクトを
ビルドします。例: "Debug"
複数のプラットフォームが可能な場合は、構成名を引用符で囲み、
プラットフォーム名を入れます。例: "Debug|Win32"
/Clean ビルド出力を削除します。
/Command IDE を開始してコマンドを実行します。
/Deploy ビルドしてから指定されたソリューション構成を配置します。
/Edit このアプリケーションの実行されているインスタンス内の指定
されたファイルを開きます。実行されているインスタンスがない場
合、簡易ウィンドウ レイアウトで新しいインスタンスを開きます。
/LCID IDE の既定の言語を UI に設定します。
/Log トラブルシューティングのため、指定されたファイルに IDE 動作のログを記録します。
/NoVSIP VSIP テスト用の VSIP 開発者ライセンス キーを無効にします。
/Out 指定されたファイルにビルド ログを書き込みます。
/Project ビルド、クリーン、または配置するプロジェクトを指定します。
/Build、/Rebuild、/Clean または /Deploy と共に使用します。
/ProjectConfig ソリューション構成で指定されたプロジェクト構成をオーバーライド
します。例: ""Debug""
複数のプラットフォームが可能な場合は、構成名を引用符で囲み、
プラットフォーム名を入れます。例: ""Debug|Win32""
/Project と共に使用します。
/Rebuild クリーンを実行してから指定された構成でソリューションまたはプロジェクトを
ビルドします。
/ResetSettings IDE の既定の設定を復元し、オプションで指定された
VSSettings ファイルにリセットします。
/ResetSkipPkgs VsPackages に追加された SkipLoading タグすべてをクリアします。
/Run 指定されたソリューションをコンパイルし実行します。
/RunExit 指定されたソリューションをコンパイルし実行してから IDE を終了します。
/SafeMode 最低限の Windows を読み込んで、IDE をセーフ モードで起動します。
/Upgrade プロジェクト、またはソリューションとその中のプロジェクトすべてをアップグ
レードします。これらのファイルのバックアップは必要に応じて作成されます。
バックアップ処理に関する詳細については、Visual Studio 変換ウィザード
についてのヘルプを参照してください。

製品固有のスイッチ:


/componentsDiff 2 つのコンポーネント フォルダーを比較します。3 つの引数が必要です:
OptionalTfsServerCollectionUri SourceVersionedServerFolderPath
TargetVersionedServerFolderPath
OptionalTfsServerCollectionUri を指定しない場合は、
現在の TFS プロジェクト コレクションが使用されます。

/debugexe 指定されたデバッグ対象の実行ファイルを開きます。コマンド ラインの
残りの部分は、この実行ファイルに引数として渡されます。
/diff 2 つのファイルを比較します。4 つのパラメーターを受け取ります:
ソース ファイル、ターゲット ファイル、ソース表示名 (省略可能)、
ターゲット表示名 (省略可能)
/openProjects /scc:git コミットされたプロジェクトを Git から開きます。
引数:
/repositoryUrl (/repo):<RequiredRepositoryUrl>
/commitId (/id):<RequiredCommitId>
/project:<RequiredProjectItemPath>
/solution (/sln):<OptionalSolutionItemPath>
/displayId:<OptionalCommitDisplayId>
/timestamp:<OptionalCommitTimestamp>
/comment:<OptionalCommitComment>
/author:<OptionalCommitAuthor>

/openProjects /scc:tfs バージョン指定プロジェクトを TFS から開きます。
引数:
/collection (/col):<OptionalTfsServerCollectionUri>
/version:<RequiredTfsVersionSpec>
/project:<RequiredProjectServerItemPath>
/solution (/sln):<OptionalSolutionServerItemPath>
OptionalTfsServerCollectionUri を指定しない場合は、
現在の TFS プロジェクト コレクションが使用されます。
/TfsLink チーム エクスプローラーを開き、指定の成果物 URI が登録
されている場合はそのビューアーを起動します。
/useenv VC++ のビルドの IDE パスではなく、
PATH、INCLUDE、LIBPATH、および LIB 環境変数を使用します。

コマンド ラインからデバッガーをアタッチするには、次を使用してください:
VsJITDebugger.exe -p <pid>

引用返信 編集キー/
■100708 / inTopicNo.4)  Re[1]: デザイナーのスケーリングを無効化する方法
□投稿者/ 魔界の仮面弁士 (3473回)-(2022/10/20(Thu) 11:04:29)
No100704 (貝 さん) に返信
> 「100% のスケールでVisual Studio を再起動します」
"Restart Visual Studio with 100% scaling" って、VS2015 でも出てくるんでしたっけ?
(手元に環境が無いので確認できない…)


> すると、これまで他のスケーリングを100%にした他のPCで、
> フォーム内のデザイン全体がわずかに大きくなってしまい、
> フォームから一部はみ出してしまう問題が起きました。
WinForms の場合、DPI については、AutoScaleMode モードの影響も受けますが、
その他、Form1.designer.vb ファイル内に書き込まれる AutoScaleDimensions プロパティの
影響も受けます。モニター設定の異なる環境で保存すると、この値が変化することがあります。

しかもこの値、Visual Studio のバージョンによって振る舞いが変化することがあるので、
個人的にはあまり信用していません…。これが原因で、一部のフォームのレイアウトが
変化したまま気付かずに開発が進められてしまい、後々、再調整に苦労しました…。
https://twitter.com/Benshi_Orator/status/1440619071947427852

ということで WinForms 開発時は、トラブルを避けるために
自分はモニター設定を 100% にした環境で開発するようにしています。

解像度の高いモニターを使っている場合には辛いですし、
高DPI環境での動作確認は別途必要なのですけれども。
引用返信 編集キー/
■100709 / inTopicNo.5)  Re[2]: デザイナーのスケーリングを無効化する方法
□投稿者/ 貝 (3回)-(2022/10/20(Thu) 17:23:16)
No100708 (魔界の仮面弁士 さん) に返信
> ■No100704 (貝 さん) に返信
>>「100% のスケールでVisual Studio を再起動します」
> "Restart Visual Studio with 100% scaling" って、VS2015 でも出てくるんでしたっけ?
> (手元に環境が無いので確認できない…)
>

ありがとうございます。

質問文にも書きましたが
VS2015にはこのメッセージが表示されません。


やはり、スケーリング100%にして使用するしか解決策がないのですね。
何か良い方法があれば良いのですが。

引用返信 編集キー/
■100710 / inTopicNo.6)  Re[3]: デザイナーのスケーリングを無効化する方法
□投稿者/ KOZ (328回)-(2022/10/21(Fri) 00:51:32)
No100709 (貝 さん) に返信
> やはり、スケーリング100%にして使用するしか解決策がないのですね。
> 何か良い方法があれば良いのですが。

エクスプローラで devenv.exe のプロパティを表示し、「互換性」タブで、「高DPI設定では画面のスケーリングを無効にする」チェックボックスを ON にするとどうでしょうか?
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -