【问题标题】:Windows Forms resolution problemWindows 窗体解析问题
【发布时间】:2010-01-15 05:33:47
【问题描述】:

我在 Windows 窗体中开发了一个 1024 *780 分辨率的屏幕,但有人说它不适合更高的分辨率。有没有办法处理这个?

有没有办法让 Windows 窗体应用程序在所有分辨率下看起来都一样?

【问题讨论】:

    标签: winforms resolution


    【解决方案1】:

    我的建议不是在所有屏幕上“让它看起来都一样”,而是设计 GUI 以便更优雅地上下缩放。布局管理器、停靠和锚点是您在 Winforms 中的朋友。 TableLayoutPanel 对于这类事情非常有用。分离器也有帮助...

    最后,这是 WPF 着手解决的问题之一。 WPF 广泛使用布局管理器。感觉它更像 Java 或 GTK,而不是 Winforms 甚至 VB(老式 VB)。

    【讨论】:

      【解决方案2】:

      这就是让你说“必须有更好的方法”的事情。

      我这次的解决方案是声明一个与当前屏幕分辨率相关的全局 ScalingFactor 变量。然后,每个视觉元素的大小乘以该因子。

      因此,如果我为分辨率 A 设计表单,并且分辨率 B 大 1.2 倍,则窗口 A 的宽度将为 * 1.2,字体将为 fontSize * 1.2,文本框尺寸将为尺寸 * 1.2。

      不好玩。

      您可能会购买 3rd 方工具并将执行此扩展。

      在您跑过这些道路之前要检查的另一件事是实际上是屏幕分辨率还是 dpi 设置导致它看起来很糟糕。通常更高的分辨率只会让它看起来更小,但非典型的 dpi,例如当用户选择“大字体”时会造成严重破坏。

      【讨论】:

      • 仅按 X 因子缩放所有内容并不是正确的解决方案。策略就像表单上有某些控件可能是扩展的竞争者,而其他控件则不是。因此缩放仅适用于这些控件。 3rd 方工具,例如 devexpress 布局控件等遵循此策略。
      • 在没有第三方工具的情况下,就像手工操作一样,当然可以选择性地扩展。对于这样一个已经设计好的应用程序,用户不会从第 3 方交换所有不同的控件,实际上需要某种容器控件,它可以将所有内容包装在表单和缩放中这一切都是统一的。
      【解决方案3】:

      可以使用item的anchor属性,form的autoScaleMode属性设置为'None'。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-02-24
        • 2012-02-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多