【问题标题】:Dynamically Scaled UIs with VB.NET WinForms?使用 VB.NET WinForms 动态缩放 UI?
【发布时间】:2011-01-30 09:45:58
【问题描述】:

我想知道是否有人熟悉设计可扩展到任何分辨率的 UI。 .NET 是否有任何库或功能可以让这变得简单?我们也有 Infragistics 控制作为一种资源。

【问题讨论】:

    标签: vb.net winforms user-interface


    【解决方案1】:

    对于 Windows 窗体,最好的选择是使用动态生成的布局控件,并确保使用控件的 Anchor/Dock 属性进行放置,而不是显式定位和调整大小。

    布局面板(例如 TableLayoutPanel)也有很大帮助,因为它们会在运行时动态调整大小。

    话虽如此,这是 WPF 比 Windows 窗体具有巨大优势的一个地方。在 WPF 中,所有大小和布局都是通过一个“像素”完成的,它是一个虚拟化的、与分辨率无关的“像素”,对应于 1/96 英寸。这意味着你的 UI 可以在任何分辨率下工作,只要你没有明确地搞砸它。

    【讨论】:

    • 我认为大多数公司都设置了标准尺寸,但我倾向于调整我的表单大小以确保它们至少可以在常见尺寸下使用。我认为任何小于 1024x768 的东西都太小了。
    • @eschneider:但是,如果您有使用上网本的用户,那么这不是一件很合理的事情。许多上网本的分辨率很奇怪,有时低于 1024x768...
    • 我同意,这是我还没有处理过的事情(上网本)。但针对最小屏幕进行设计也会阻碍理想的设计。
    • 小格式客户端可能是一种选择,开发人员可以重用全尺寸客户端的某些部分。
    【解决方案2】:

    使用TableLayoutPanel。然后,您可以布置一个可扩展的网格(您可以混合使用固定宽度/高度和基于百分比的变量),然后将 UI 组件停靠/锚定到表格单元格。

    TableLayoutPanel Members (System.Windows.Forms)

    【讨论】:

      【解决方案3】:

      FWIW,您应该始终牢记,用户可以在“控制面板”的“显示设置”中切换其默认字体的大小。仍有一些控件无法正确处理此大小问题,因此您应该小心您对预期大小所做的假设。

      【讨论】:

        猜你喜欢
        • 2015-07-30
        • 2014-10-11
        • 1970-01-01
        • 2011-12-07
        • 2011-07-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-25
        相关资源
        最近更新 更多