1

ウィンドウのサイズに基づいてユーザー コントロールの 1 つまたは複数のレイアウトを定義できる WPF のコントロールはありますか。

解像度が 1280 x 800 の場合、4 列のグリッド コントロールでデータを表示するとしますが、解像度が 800 x 600 の場合、2 列のグリッド コントロールしか表示されないため、押しつぶされたように見えます。

例えば

<Layouts>
 <Layout x:key="1280x800">
  <Grid/> with 4 columns
 </Layout>
 <Layout x:key="800x600">
  <Grid /> with 2 columns
 </Layout>
</Layouts>
4

1 に答える 1

7

ウィンドウのSystemParametersまたはウィンドウの/へのバインドを介して、またはプロパティ セットをContentControl持つを使用できます。ContentContentTemplateDataTriggerActualHeightActualWidth

トリガーは値が何かに等しいかどうかのみをテストし、画面の高さ/幅が特定の値より大きいか小さいかをテストする必要がある場合があるため、 IValueConverterも必要になる場合があります。

また、WPF は実際には画面解像度に基づいてスケーリングしません。このSOの回答を引用するには

すべての WPF の場所とサイズは、1/96 インチ単位の浮動小数点であることに注意してください。ピクセルではありません。これにより、ウィンドウのデザインが解像度に依存しなくなります。計算を行う: 高さ = 960 / 96 = 10 インチ。ビデオ アダプタが 120 DPI (120/96 = 125%) に設定されている場合: 10 * 120 = 1200 ピクセル。幅も同じ: 1536 / 96 * 120 = 1920 ピクセル。

于 2013-02-22T12:50:20.813 に答える