1

さまざまなアスペクト比で、全画面に収まるように UI をスケーリングする必要がある WPF アプリケーションがあります。一部にグリッドを使用していますが、それはフォントをスケーリングせず、ViewBox を使用して TabControl をスケーリングしますが、アスペクト比を変更してテキストを歪めます。

コントロールのジオメトリとテキストのフォント サイズをスケーリングするが、フォントの同じ縦横比を維持する代替手段はありますか?

私はしばらく探していましたが、誰もこの正確な問題に答えていないようです。

この問題は、自分で何かを最初から書くことができることを示唆しているようですが、フォントのスケーリングを制御できるという意味はありません。

4

2 に答える 2

1

WPFには確かにそのコントロールがあります...それはGrid. Windowほとんどの WPF 開発者は、同じフォント サイズ縦横比を維持しながら、コントロールが のサイズに合わせて自動的に拡大するアプリケーションを設計します。が拡大するにつれて特定の部分を拡大したい場合は、全体ではなく、その部分に aをWindow使用します。ViewBoxWindow

于 2013-09-13T09:46:38.420 に答える
0

私自身の解決策は原始的ですが、ある程度は機能します。

コントロール ジオメトリを定義するには、分数の幅/高さのグリッドを使用し、コンテンツに合わせてサイズを変更するその他のコントロールを使用します。

ウィンドウの実際の高さを設計上の高さで割って、フォントのスケーリングを計算します。

ウィンドウ レベルのフォント サイズを設計サイズ * スケーリングに設定します。

問題:

  • XAMLからこれを取得する方法がないように見えるため、元のデザインの高さをハードコーディングする必要があります
  • 元のデザインのフォント サイズをハード コードする必要があります。
  • パディングやマージンをスケーリングしないため、プロポーションはまだ少し不安定になる傾向があります.
  • 異なるフォント サイズが必要な場合は、すべての異なるコントロールのコードを記述する必要があります。

WPF は、IMO を非常に難しくしています。スケーラブルで解像度に依存しない要素がありますが、スケーラブルなユーザー インターフェイスを構築するのに実際にはあまり役に立ちません。

于 2013-09-17T20:50:31.243 に答える