如何在C#中使用屏幕分辨率缩放表单组件?

时间:2011-04-24 10:51:56

标签: c# screen resolution

我创建了一个带有一些元素的表单(一个pictureBox,一个面板和一些标签),当我以800 * 600分辨率运行它时,我的应用程序正常工作。但是当我想以另一种分辨率(即1024 * 768)运行它时,元素会转到错误的位置。我想根据屏幕分辨率缩放(大小和起点)所有表单元素。 我知道我应该使用锚和Dock,但我不能。我找到了一些关于使用这些技术的链接,但它不能很好地工作。 我使用visual studio 2010。

有没有人知道我的问题的解决方案?

非常感谢

1 个答案:

答案 0 :(得分:0)

你在谈论两个不同的问题。

  1. UI缩放/分辨率独立性 - 使用标准WinForms无法实现。主要是因为标准的GDI绘图,WinForms使用过,从未想过这个选项。这将允许扩展您的UI,以便相对大小和位置总是相同,但它可能看起来大小不同。

  2. 动态布局 - 此技术允许您的控件根据分辨率调整大小和位置。 WinForms在这方面的选择有限,但使用所有控件的Dock和Anchor属性可以有限地实现它。这与缩放或分辨率独立性无关。

    此外,一些第三方库提供了这种扩展,以允许更动态的布局。

  3. WPF在UI缩放(因为它基于矢量)和布局(因为它使用双遍布局)方面要先进得多。但这需要首先转向这项技术。