質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

Q&A

解決済

1回答

1303閲覧

C# ディスプレイサイズに応じてアプリ全体の大きさを調節したい

Sheep_fluffy

総合スコア35

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

0グッド

0クリップ

投稿2022/05/30 03:55

編集2022/05/30 05:45

環境は.NET6,Windows10,C#WPF(VisualStudio2022)です。

二つのPCがあります。
片方はノートパソコンでディスプレイサイズは横30cm縦17cm、
解像度は横1920縦1080。
もう片方はテレビに繋いだPCでディスプレイサイズは横52cm縦29cm、
解像度は横1920縦1080。

どちらの環境においてもコントロールが画面一杯の大きさになるようなアプリ(つまり、アスペクト比が保たれた上で、どちらの環境でもコントロールの配置の収まりが良いアプリ)を作りたいのですが、
どういう考え方をすればいいでしょうか?

※わかりづらくて申し訳ありません。
解像度(DPI)が同じで物理的なディスプレイサイズが異なるケースにおいても、
それぞれのコントロールを拡大縮小移動して同じように表示したいということです。

既存コントロールを継承した新コントロールに、
ディスプレイサイズを算出して自動で大きさを調節するイベントを実装?

でもこれだと座標のずれは直せないですよね……。

ご指導お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ttact

2022/05/30 05:25

質問の内容がよくわかりません。解像度が同じであるがDPIが異なる2種類のディスプレイに対して、DPIを無視して解像度のみに基づいて同じように表示されるように調整したいということですか? あと環境(対象の.NET・VS・Windowsのバージョン)も書きましょう。
Sheep_fluffy

2022/05/30 05:37

恐れ入ります! DPIとは解像度のことと認識しておりますし、検索してもそのように見受けられますが、タイプミスでいらっしゃいますでしょうか? 環境書かせて頂きます!
ttact

2022/05/30 06:07 編集

DPI == Dot per inchは物理的な1インチ当たりに何ピクセルが割り当てられているのか、という言葉です。 質問者さんは「解像度は横1920縦1080」という書き方をしておられますが、画素数はディスプレイの物理的な大きさは無視した単位で、DPIは画素数と物理的なディスプレイサイズの両方を考慮した単位です。 質問者さんのやりたいことは、あるボタンについてディスプレイ上で物理的にモノサシで測って同じ大きさで表示されるようにしたいのですか?それとも、物理的には異なるけれども、2つのディスプレイでコントロールのレイアウトが一致するようにしたいのですか?これ、前者はDPIを考慮しており、後者は画素数のみを考慮して物理サイズは切り捨てるということなのですが、そのあたりはどのようにしたいのでしょうか。 Windowsは標準で96DPIですが、ノートPCで画素数が多いものはDPIが変更されて出荷されたりしているものもあります。Windows10では表示スケールという名前で設定アプリ上に設定項目があります。 まずはWindowsの表示スケール、DPIについてドキュメントを読んで仕様を理解することが、回り道のようで最も早いと思いますが。。。
Sheep_fluffy

2022/05/30 06:05

!!!!!!! 今確認したのですが、二つの環境で表示スケールが違いました!!! そして表示スケールを一緒にしたところ、アプリが同じように表示されました!!!!!! 大変恐れ入ります! 私の勉強不足でございます!! 回答ありがとうございました!!
ttact

2022/05/30 06:10

質問者さんが作るアプリケーションについて、もしも他の人にも売ったり配布したりすることを想定されているのであれば、どんな表示スケールであっても同じように表示されるように考慮すると良いでしょう。なぜなら、先に書いた通り、出荷状態で表示スケールが100%ではないノートPCは世の中に溢れているからです。DELLやHPの13/14インチノートとか。 先に示したマイクロソフトのページでは、そのような事柄についてどのように対応したらよいのかを解説しておりますので、DeepL翻訳とかで頑張って翻訳しながら説明を読むと良いと思います。
guest

回答1

0

自己解決

表示スケールが異なることで、アプリのサイズが違いました。
設定を同じにしたところ、望む動きになりました。
ttactさんありがとうございます!!!!!!!!!!!!!!!!!(補足参照

投稿2022/05/30 06:06

Sheep_fluffy

総合スコア35

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問