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

.net 根据不同的屏幕分辨率调整或更改WPF控件的布局,.net,wpf,layout,screen-resolution,.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"&g

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列
有两列

您可以使用
ContentControl
,该控件通过绑定到窗口的
DataTrigger
或窗口的
ActualWidth
ContentTemplate
属性设置了
ContentControl

您可能还需要,因为只有当值等于某个值时才会触发测试,并且您可能需要测试屏幕高度/宽度是否大于或小于特定值

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

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


您可以使用
ContentControl
,该控件通过绑定到窗口的
DataTrigger
或窗口的
actualwhite
ContentTemplate
属性设置了
ContentControl

您可能还需要,因为只有当值等于某个值时才会触发测试,并且您可能需要测试屏幕高度/宽度是否大于或小于特定值

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

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


我喜欢这个主意。我试试看,我喜欢这个主意。我试试看