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

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

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

多種のディプレイに対応できるアプリ

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

■103255 / inTopicNo.1)  多種のディプレイに対応できるアプリ
  
□投稿者/ kiku (431回)-(2024/07/11(Thu) 16:13:50)

分類:[.NET 全般] 

現在、.NETFrameWork4.8.1、WinFormアプリを開発し、利用しています。
お客様の利用数がかなり増えており、
下記のようなご要望を頂いております。
・デフォルトのディスプレイ設定では、アプリ画面が見切れてしまう。
・ディスプレイの拡大率を変更できる場合には、
 拡大率を変更することでアプリ画面は見れるようになるが
 別のアプリが極端に小さくなったり、大きくなったりし、使いづらい。
・ディスプレイの拡大率を変更できない場合には、ディスプレイを買い直す必要がある。

こんな要望を受け、なんとか対処できないかと検討しています。
ここから質問です。
WPFアプリなら、自動的にフォントサイズや、
ボタンなどのコントロールのサイズを
DPIやディプレイの解像度や拡大率に合わせて
自動的に調整するような機能を実現することは可能でしょうか?

最終的には、DPIや解像度や拡大率の組み合わせを
意識して実装することになるのでしょうか?

当方はWPFアプリ開発については経験0のため、
経験のある方にお聞きしたいです。

引用返信 編集キー/
■103257 / inTopicNo.2)  Re[1]: 多種のディプレイに対応できるアプリ
□投稿者/ くま (31回)-(2024/07/12(Fri) 02:11:46)
自分の場合で恐縮ですが、最近
・Windows Forms
・.NET Framework 4.8.1
で対応しました。

Windows フォームでの自動スケーリング
https://learn.microsoft.com/ja-jp/dotnet/desktop/winforms/automatic-scaling-in-windows-forms?view=netframeworkdesktop-4.8
・ScaleChildren プロパティ
・GetScaledBounds メソッド
・ScaleControl メソッド
のオーバーライドでの方法があったのですが、メンドクサくなって

a. 基本TableLayoutPanelの調整で済ます。
b. それでも対応できない範囲は
1. Loadのタイミングでコントロールを登録するクラスを作成。
2. クラス内には、DPIが96(100%)ではない場合
・対象コントロール
・位置サイズを変更するか?
・フォントサイズを変更するか?
を定義しておいてしのぎました。

ただ複数モニタでDPIが違う場合とかをテストはできませんでした
(Window.DpiChangedイベントとかうまく試せなかった...)

フォント関係は
https://qiita.com/felis_silv/items/efee4b1a397b0b95100a
ピクセル単位で指定できたのはよかった。
引用返信 編集キー/
■103258 / inTopicNo.3)  Re[2]: 多種のディプレイに対応できるアプリ
□投稿者/ kiku (432回)-(2024/07/12(Fri) 12:53:08)
No103257 (くま さん) に返信
> 自分の場合で恐縮ですが、最近
> ・Windows Forms
> ・.NET Framework 4.8.1
> で対応しました。

貴重な情報ありがとうございます。
なるほど、WinFormのままという選択肢もあるんですね。
このあたりの機能は利用したことがないため
サンプルアプリを作って試してみたいと思います。

他の方のアドバイスも聞きたいため、
しばらく待ってみようと思います。
引用返信 編集キー/
■103259 / inTopicNo.4)  Re[3]: 多種のディプレイに対応できるアプリ
□投稿者/ radian (160回)-(2024/07/12(Fri) 14:40:34)
2024/07/12(Fri) 14:40:57 編集(投稿者)

> WPFアプリなら、自動的にフォントサイズや、
> ボタンなどのコントロールのサイズを
> DPIやディプレイの解像度や拡大率に合わせて
> 自動的に調整するような機能を実現することは可能でしょうか?

WPFだと、ViewBoxというコントロールを使って親に合わせて拡大縮小するような事は出来ます。
https://blog.okazuki.jp/entry/20130105/1357400239
引用返信 編集キー/
■103261 / inTopicNo.5)  Re[4]: 多種のディプレイに対応できるアプリ
□投稿者/ kiku (433回)-(2024/07/16(Tue) 08:37:54)
No103259 (radian さん) に返信
> 2024/07/12(Fri) 14:40:57 編集(投稿者)
> WPFだと、ViewBoxというコントロールを使って親に合わせて拡大縮小するような事は出来ます。
> https://blog.okazuki.jp/entry/20130105/1357400239

ありがとうございます。
これは良いですね。
これも試してみたいと思います。
引用返信 編集キー/
■103262 / inTopicNo.6)  Re[5]: 多種のディプレイに対応できるアプリ
□投稿者/ kiku (434回)-(2024/07/17(Wed) 12:59:16)
No103261 (kiku さん) に返信
> ■No103259 (radian さん) に返信
>>2024/07/12(Fri) 14:40:57 編集(投稿者)
>>WPFだと、ViewBoxというコントロールを使って親に合わせて拡大縮小するような事は出来ます。
>>https://blog.okazuki.jp/entry/20130105/1357400239
>
WPFの方向で進めることにしました。
何か問題が発生しましたら、
別スレッドで相談させて頂きたいと思っています。
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


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

このトピックに書きこむ