I'm写Compact Framework的应用程序为Windows Mobile 6.5。该应用程序会在WindowsPhone的市场销售。要做到这一点,我必须支持各种屏幕尺寸和分辨率...但我怎么做到这一点?是否有一个最好的做法还是这样吗?我主要使用的标准控件,但在MainForm的背景图像...我必须将其存储在任何分辨率和显示它动态的,这取决于设备我的应用程序运行?

感谢您的建议和帮助。

托马斯

有帮助吗?

解决方案

我就开始说这是一个有争议的话题。

我的个人采取的是应标识显著不同分辨率/尺寸范围,并提供可以交换在不同的UI层时检测一个调整大小,从一个范围变到另一个(动态切换甚至可能不是一个必要条件为你 - 在这种情况下,你只需要检查在加载时间)。这种做法显然是没有意义的,如果你确定范围是非常有限的,并彼此相似,因为相同的范围内,你的应用程序应该能够体面地调整。

努力解决都具有相同的UI层的可能的解决方案听起来像一个伟大的想法,但它可以是一个灾难。你可能会得到它的工作,但你很可能会结束了线球,带着一帮IF-ELSE和switch语句看像素大小,缩放控件和走动的事情。

如果你想想看,谷歌地图(一人,但去想任何iPhone应用程序)不服务于移动和桌面浏览器等等相同的用户界面。如果这是在规模上的差异,我们正在谈论(移动VS类似桌面的分辨率),那么你就必须推出不同的UI层按照上述我的建议。

在圣杯是所谓的液体布局 - WPF可以帮助这个但因为你在紧凑的框架,多数民众赞成排除

最近,我问了一个非常类似的问题 - 你可以看看它的在这里,如果你想读取不同意见的。

其他提示

这是一个恶棍。我已经与以下的低工作计划合理的结果。 (这是Winform的取向,顺便说一句)

最大的问题是与其他的的比预期的决议。因此,创建您的屏幕尽可能的小,并要特别注意你的锚和对接设置。当显示每种形式将其设置为全屏幕和锚固性能应做在一个健全的方式显示的东西的一个合理的工作。

这只是开始看傻了,如果分辨率要比预期的大。结果 注意:您可以通过电话Screen.PrimaryScreen.Bounds找到当前平台的屏幕尺寸。

我最近建立了一个小的应用程序,只是为了尝试新事物了。我需要显示背景图像,所以,因为它们不支持透明背景我不能使用内置的控制等标签等等。

我结束了绘制在窗体的Paint事件的整个界面,使用GDI +。

处理不同的屏幕分辨率被证明是相当简单:接口是原型用于常规96DPI屏幕(最小的),则所有尺寸使用如96 / actual_dpi算出的因子缩放。您可以使用代码检索屏幕的实际DPI设置发现这里(有点老,但仍然工作)。然后我测试与由仿真器提供的所有分辨率的应用程序,没有发现问题。

警告:我“浪费”,使解决方屏幕和横向/纵向方向需要什么特别的屏幕的下部

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top