如何在.Net上处理不同的屏幕分辨率

3
我需要在我的软件中添加一个分辨率不同于之前的新监视器,但我仍然需要支持两者。
我考虑在每个“窗体加载”事件中包含一个开关案例,并根据屏幕分辨率更改表单中包含的所有按钮、表单、对象等的大小。
Select case Resolution
    case 800x480
        resizes my controls...
    case 1024x768
        resizes my controls...
end select

应用程序将在Windows CE 6上运行,使用紧凑框架3.5。
问题是:
在.NET中是否有更聪明的方法来处理不同的分辨率?
2个回答

2
是的,不过这取决于您使用的用户界面框架。
目标是设计您的界面以在不同分辨率下合理地扩展。例如,在Windows窗体中,可以利用AnchorDock属性来代替绝对定位和大小设置。这样,随着窗口大小的变化,项目可以适当地“移动”和“缩放”。

1
我不相信在紧凑框架中有TableLayoutPanel可用。 - vcsjones
@vcsjones 已经将其删除 - 没有意识到。谢谢。 - Reed Copsey

1

如果Anchor和Dock适用于您的情况,可以像Reed建议的那样使用它们。

话虽如此,如果您的屏幕非常复杂或者您处理的设备形态差异很大,简单调整控件大小可能不足以解决问题。我建议您构建解决方案/代码,使其能够为每个形态因素开发单独的屏幕,并将它们放置在卫星程序集中,在运行时加载。为了实现这一点,您的逻辑必须驻留在窗体之外,但实际上它确实应该这样做。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接