【问题标题】:Adapt or Change Layout of WPF controls according to different screen resolution根据不同的屏幕分辨率调整或更改 WPF 控件的布局
【发布时间】:2013-02-22 12:46:13
【问题描述】:

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>

【问题讨论】:

    标签: .net wpf layout screen-resolution


    【解决方案1】:

    您可以使用ContentControl,它的ContentContentTemplate 属性通过绑定到窗口的SystemParameters 或窗口的ActualWidthDataTrigger 设置.

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

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

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

    【讨论】:

    • 我喜欢这个主意。我试试看
    猜你喜欢
    • 1970-01-01
    • 2020-07-13
    • 2011-02-17
    • 2014-06-15
    • 1970-01-01
    • 2017-10-09
    • 1970-01-01
    • 2014-08-06
    • 2011-12-28
    相关资源
    最近更新 更多