根据不同的屏幕分辨率调整或更改WPF控件的布局

Jul*_*rre 0 .net wpf layout screen-resolution

在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>
Run Code Online (Sandbox Code Playgroud)

Rac*_*hel 6

您可以使用通过绑定到窗口的SystemParameters或窗口的/ 来设置ContentControlContentContentTemplate属性.DataTriggerActualHeightActualWidth

您可能还需要IValueConverter,因为触发器仅测试值是否等于某个值,并且您可能需要测试屏幕高度/宽度是否大于或小于特定值.

此外,WPF实际上不会根据屏幕分辨率进行缩放.引用这个SO答案

请记住,所有WPF位置和大小都是浮点数,单位为1/96英寸.不是像素.这使您的窗口设计分辨率独立.做数学:身高= 960/96 = 10英寸.将视频适配器设置为120 DPI(120/96 = 125%):10*120 = 1200像素.宽度相同:1536/96*120 = 1920像素.