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

时间:2013-02-22 12:46:14

标签: .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>

1 个答案:

答案 0 :(得分:6)

您可以使用ContentControlContent属性设置的ContentTemplate DataTrigger绑定到窗口的SystemParameters,或者ActualHeight窗口ActualWidth / {{1}}。

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

此外,WPF实际上不会根据屏幕分辨率进行缩放。引用this SO answer

  

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