Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Windows Mobile中支持不同的屏幕大小?_C#_Windows Mobile_Compact Framework_Marketplace - Fatal编程技术网

C# 如何在Windows Mobile中支持不同的屏幕大小?

C# 如何在Windows Mobile中支持不同的屏幕大小?,c#,windows-mobile,compact-framework,marketplace,C#,Windows Mobile,Compact Framework,Marketplace,我正在为WindowsMobile 6.5编写一个紧凑的框架应用程序。该应用程序将在Windowsphone市场上销售。要做到这一点,我必须支持各种屏幕大小和分辨率…但我该如何做到这一点?是否有最佳实践?我主要使用标准控件,但在主窗体中使用背景图像…我是否必须以任何分辨率存储并动态显示它,这取决于我的应用程序运行的设备 谢谢你的建议和帮助 托马斯我要开始说这是一个有争议的话题 我个人的看法是,您应该确定明显不同的分辨率/大小范围,并提供一个不同的UI层,当您检测到从一个范围到另一个范围的大小调整

我正在为WindowsMobile 6.5编写一个紧凑的框架应用程序。该应用程序将在Windowsphone市场上销售。要做到这一点,我必须支持各种屏幕大小和分辨率…但我该如何做到这一点?是否有最佳实践?我主要使用标准控件,但在主窗体中使用背景图像…我是否必须以任何分辨率存储并动态显示它,这取决于我的应用程序运行的设备

谢谢你的建议和帮助


托马斯

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

我个人的看法是,您应该确定明显不同的分辨率/大小范围,并提供一个不同的UI层,当您检测到从一个范围到另一个范围的大小调整时,您可以在其中进行切换(动态切换甚至可能不是您的要求-在这种情况下,您只需在加载时进行检查)。如果您确定的范围非常有限且彼此相似,那么这种方法显然没有意义,因为在相同的范围内,您的应用程序应该能够适当地调整大小

试图用同一个UI层解决所有可能的解决方案听起来可能是个好主意,但这可能会导致灾难。你可能会让它工作,但你很可能会得到一个字符串球,用一堆IF-ELSE和SWITCH语句查看像素大小,调整控件大小和移动对象

如果你仔细想想,谷歌地图(例如,但想想任何iPhone应用程序)在手机和桌面浏览器上都不提供相同的用户界面,等等。如果这就是我们讨论的大小差异(移动与桌面分辨率),那么您必须按照我上面的建议滚动不同的UI层

圣杯是所谓的液体布局——WPF可以在这方面有所帮助,但因为您使用的是紧凑的框架,所以不可能使用它


我最近问了一个非常类似的问题——你可以看看。

这是一个难题。我用下面的低努力计划得到了合理的结果。(这是面向Winform的,顺便说一句)

最大的问题是决议比预期的要小。因此,创建尽可能小的屏幕,并特别注意锚定和停靠设置。当显示每个表单时,将其设置为全屏,锚定属性应该以合理的方式显示内容

只有当分辨率远大于预期时,这才显得愚蠢。

注意:您可以通过screen.PrimaryScreen.Bounds调用找到当前平台的屏幕大小。

我最近开发了一个小应用程序,只是为了尝试一下。我需要显示背景图像,所以我不能使用内置控件,如Label等,因为它们不支持透明背景

最后,我使用GDI+在表单的Paint事件中绘制了整个界面

处理不同的屏幕分辨率非常简单:该界面是常规96dpi屏幕(最小屏幕)的原型,然后使用96/u dpi计算的因子缩放所有大小。您可以使用找到的代码检索屏幕的实际DPI设置(有点旧,但仍在工作)。然后,我用模拟器提供的所有分辨率测试了应用程序,没有发现任何问题


警告:我“浪费”了屏幕的下半部分,因此不需要特别处理方形屏幕和横向/纵向方向。

+1。试图通过移动和调整大小来处理代码中的方向和分辨率更改是一场噩梦。只需将UI界面化,并根据查询的屏幕分辨率创建实现,就更容易了。