1

WPF 中是否有一个控件可以让我根据窗口的大小为用户控件定义 1 个或多个布局。

假设分辨率为 1280 x 800,我将有一个 4 列的 Grid 控件来显示我的数据,但如果分辨率为 800 x 600,我将只有一个 2 列的 Grid 控件,所以它看起来确实很糟糕。

例如

<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或窗口的/来设置ContentControlContentContentTemplate属性的 a 。DataTriggerActualHeightActualWidth

您可能还需要一个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 回答