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>
答案 0 :(得分:6)
您可以使用ContentControl
或Content
属性设置的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像素。