Windows Phone 8 支持具有 WVGA、WXGA 和 720p 分辨率的手机。这与仅支持 WVGA 分辨率的 Windows Phone OS 7.1 不同。本主题将介绍 Windows Phone 8 支持的分辨率,以及如何使用不同的分辨率开发面向手机的应用。

本主题包含以下各节。

  • 支持的分辨率
  • 适应您的布局
  • 分辨率相关的背景和资产
  • 初始屏幕
  • 图块和应用图标
  • 相关主题
支持的分辨率


下表描述了 Windows Phone 8 中支持的分辨率和纵横比。

分辨率

分辨率

纵横比

与 Windows Phone OS 7.1 相比的新增内容

按比例缩放的分辨率

WVGA

480 × 800

15:9

无。这是 Windows Phone OS 7.1 唯一支持的分辨率。

480 × 800

WXGA

768 × 1280

15:9

1.6x 方向缩放

480 × 800

720p

720 × 1280

16:9

1.5x 方向缩放,高度增加 80 个像素(缩放后为 53 个像素)

480 × 853

下图所示为同一屏幕显示在具有不同分辨率的手机中。

适应您的布局


由于所有 Windows Phone OS 7.1 手机均具有相同的分辨率,您可以布局内容以使之在 Windows Phone OS 7.1 手机上显示良好,并确定它将在所有 Windows Phone OS 7.1 手机上显示良好。您无需考虑每个控件如何伸展和流动等内部问题。

在 Windows Phone 8 中,您需要布局控件和其他 UI 元素,以使之在每种支持的纵横比中显示良好。因为 Windows Phone 8 手机具有两种纵横比(15:9 或 16:9),针对一种纵横比布局的控件可能在另一种纵横比下出现意外布局。

若要使页面能在分辨率为 WVGA、WXGA 和 720p 的手机上正确显示,则不要硬编码控件的长和宽或边距。从工具箱中拖放控件后,请删除或仔细测试自动添加的边距。

若要创建可适应布局,您可以使用像网格控件之类的容器。不是对控件的高和宽进行硬编码,而是将控件放置在网格中,并使用 * 和 Auto 值设置其行和列的高和宽。如此一来,应用可以拉伸或缩放控件以使之适合用户手机的高和宽。如果您对控件的高和宽进行硬编码,布局不适应其他分辨率。

以下 XAML 显示使用网格控件实现这些准则的布局的代码。

XAML
View Code

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"><Grid.RowDefinitions><RowDefinition Height="Auto" /><RowDefinition Height="*" /><RowDefinition Height="*" /><RowDefinition Height="*" /><RowDefinition Height="*" /><RowDefinition Height="*" /></Grid.RowDefinitions><Grid.ColumnDefinitions><ColumnDefinition Width="*" /><ColumnDefinition Width="*" /><ColumnDefinition Width="*" /><ColumnDefinition Width="*" /></Grid.ColumnDefinitions><Border Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="4"BorderThickness="3" BorderBrush="White" Padding="4" Margin="12"><TextBlock Text="423 + 61 = 484" FontSize="35" Padding="6" Height="69" /></Border><Button Grid.Row="1" Grid.Column="0" Content="Clear" /><Button Grid.Row="1" Grid.Column="1" Content="/" /><Button Grid.Row="1" Grid.Column="2" Content="*" /><Button Grid.Row="1" Grid.Column="3" Content="-" /><Button Grid.Row="2" Grid.Column="0" Content="7" /><Button Grid.Row="2" Grid.Column="1" Content="8" /><Button Grid.Row="2" Grid.Column="2" Content="9" /><Button Grid.Row="2" Grid.Column="3" Content="+" Grid.RowSpan="2" /><Button Grid.Row="3" Grid.Column="0" Content="4" /><Button Grid.Row="3" Grid.Column="1" Content="5" /><Button Grid.Row="3" Grid.Column="2" Content="6" /><Button Grid.Row="4" Grid.Column="0" Content="1" /><Button Grid.Row="4" Grid.Column="1" Content="2" /><Button Grid.Row="4" Grid.Column="2" Content="3" /><Button Grid.Row="4" Grid.Column="3" Content="=" Grid.RowSpan="2" /><Button Grid.Row="5" Grid.Column="0" Content="0" Grid.ColumnSpan="2" /><Button Grid.Row="5" Grid.Column="2" Content="." />
</Grid>

该应用具有适用于 WVGA、WXGA 和 720p 的动态布局。WVGA 和 WXGA 手机上的输出框具有相同大小,由于 Height 属性被设置为  Auto,按钮将均匀收缩以适应剩余的可用空间。在 720p 分辨率下,按钮稍微高于其在 WVGA 和 WXGA 分辨率下的位置。

可以使用 MinHeight 和 MaxHeight 属性设置最小高度和最大高度。请务必记住,屏幕上的在任何方向上不足 8mm 的任何元素都将难以用手指可靠地按下。可以使用 MinHeight 属性和MinWidth 以确保交互式元素不会过度收缩。您可以组合这些属性,以允许 WVGA 分辨率下的布局收缩,但不可用于 720p 分辨率下的拉伸。

分辨率相关的背景和资源


资源,如图形、视频、音频和图标等,在应用的大小中占据了很大比例。包括应用中所有分辨率的资产使用了应用的大量空间。对于大多数应用,我们建议仅包含 WXGA 资产。WXGA 资产的质量最高,并且它们将自动缩放以在其他分辨率下显示良好。

由于 WXGA/WVGA 和 720p 分辨率的纵横比不同,某些情况下,您可能想要在应用中包含用于不同分辨率的独特背景图像。当您想要在应用中包含用于所有支持的分辨率的图像时,可先使用以下步骤以检测设备分辨率,然后在运行时加载相关的图像。

在运行时加载分辨率相关的图像的步骤

  1. 在项目文件中,添加用于 WVGA、WXGA 和 720p 分辨率的图像。在此示例中,我们将文件命名为 MyImage.screen-wvga.png、MyImage.screen-wxga.png 和 MyImage.screen-720p.png。

  2. 将图像的“复制到输出目录”属性设置为“始终复制”。

  3. 将名为 ResolutionHelper.cs 的类添加到项目,然后将以下代码复制并粘贴到新类中。

    C#
    View Code

    public enum Resolutions { WVGA, WXGA, HD720p };public static class ResolutionHelper
    {private static bool IsWvga{get{return App.Current.Host.Content.ScaleFactor == 100;}}private static bool IsWxga{get { return App.Current.Host.Content.ScaleFactor == 160; }}private static bool Is720p{get { return App.Current.Host.Content.ScaleFactor == 150; }}public static Resolutions CurrentResolution{get{if (IsWvga) return Resolutions.WVGA;else if (IsWxga) return Resolutions.WXGA;else if (Is720p) return Resolutions.HD720p;else throw new InvalidOperationException("Unknown resolution");}}
    }

    上述类使用 ScaleFactor 属性确定设备的分辨率。

  4. 添加包含以下代码的名为 MultiResImageChooser.cs 的类。此类使用在上一步中创建的ResolutionHelper.cs 类来确定设备的分辨率。然后,它将返回新的 BitmapImage(从对应于检测到的分辨率的图像的 URI 中创建出)。

    C#
    View Code

    using System.Windows.Media.Imaging;public class MultiResImageChooserUri{public Uri BestResolutionImage{get{switch (ResolutionHelper.CurrentResolution){case Resolutions.HD720p:return new Uri("Assets/MyImage.screen-720p.jpg", UriKind.Relative);case Resolutions.WXGA:return new Uri("Assets/MyImage.screen-wxga.jpg", UriKind.Relative);case Resolutions.WVGA:return new Uri("Assets/MyImage.screen-wvga.jpg", UriKind.Relative);default:throw new InvalidOperationException("Unknown resolution type");}}}}

  5. 在 MainPage.xaml 中,添加 Image 元素并将其 Source 属性绑定到由 MultiResImageChooser.cs 类返回的 URI。

    XAML
    View Code

    <!--ContentPanel - place additional content here-->
    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"><Image Source="{Binding BestResolutionImage, Source={StaticResource MultiResImageChooser}}"/>
    </Grid>

  6. 在 App.xaml 的 <Application> 元素中,添加以下 xmlns 命名空间映射。

    XAML
    xmlns:h="clr-namespace:MultiResSnippet"

  7. 在 App.xaml 中,添加以下应用程序资源。

    <!--Application Resources-->
    <Application.Resources><h:MultiResImageChooser x:Key="MultiResImageChooser"/>
    </Application.Resources>

初始屏幕


若要显示所有分辨率的初始屏幕,则使用分辨率为 768 × 1280 的名为 SplashScreenImage.jpg 的单个图像文件。手机会自动将图像缩放至适当大小。

如果想要提供各种像素的像素完美的初始屏幕,可以使用以下文件名添加图像:

  • SplashScreenImage.Screen-WVGA.jpg

  • SplashScreenImage.Screen-WXGA.jpg

  • SplashScreenImage.Screen-720p.jpg

所有初始屏幕图像必须包含在应用项目的根文件夹中。

有关更多信息,请参见如何为 Windows Phone 创建初始屏幕。

图块和应用图标


对于图块和应用图标,必须只包含适用于 WXGA 分辨率的图像。手机会自动将图像缩放为适用于 WVGA 和 720p 屏幕的合适大小。有关图块及其大小的更多信息,请参见 Windows Phone 的图块。

转载于:https://www.cnblogs.com/xiaogui9527/archive/2013/03/26/2982264.html

windows phone 8 分辨率相关推荐

  1. Windows CE ENC_LX800分辨率的设置

    首先修改显卡驱动程序的分辨率设置如下:根据windows ce5.0安装位置不同可能有差异 1.打开C:/WINCE500/PLATFORM/Geodelx/Src/Drivers/Lxvideo/l ...

  2. [Windows]解决截图分辨率变小、高分辨率应用字体模糊

    以Windows10为例,其余Windows系统同样适用.不同系统设置所处位置不一样,设置内容相同. 一.截图分辨率变小 1)桌面右键,选择"显示设置": WIN10显示设置 2) ...

  3. 解决关于mbp132018 parallessls desktop下安装windows虚拟机2880X1800分辨率下鼠标指针过大的问题

    在pd安装win10后调节分辨率后发现鼠标指针过大(系统内部调节指针至最小后还是过大).我的解决方法是在pd处进行如下操作:查看->Retina分辨率->最适用于Retina显示器.即可解 ...

  4. 创建分辨率自适应的Windows Phone 8应用程序

    1. 引言 Windows Phone 7平台只支持WVGA分辨率(480*800)的设备,这对于应用程序的UI设计来说是有利的,因为设计人员不用考虑多分辨率对UI控件布局的影响.但是,Windows ...

  5. windows分辨率修改工具_Windows 字体优化,这几个办法能帮你解决

    如何改善 Windows 的字体渲染是一个亘古不变的话题,长期以来大家都有这样的一个印象:Windows 上面的字体渲染相比 macOS 没有那么细腻清晰.实际上,也确实是这个样子,由于 Window ...

  6. C#如何设置Windows桌面分辨率

    在开发的过程中,有时候我们需要获取Windows桌面的分辨率.这时候.NET为我们提供了相关的类Screen,通过使用Screen类,我们可以获取桌面的相关信息.以下是实例代码: Screen scr ...

  7. 在windows XP下如何用Vmware装Linux操作系统

    下载VMWare解压后根据提示正触安装VMWare到硬盘中 (1) 建立虚拟机 A.用鼠标左建双击桌面中的"VMware workstation"图标,运行虚拟机 B.建立一台虚拟 ...

  8. 调试屏幕分辨率变化html页面变化,屏幕分辨率如何自动调整网页显示问题

    对于初学者来说,屏幕分辨率就是一个陌生的词语,更别说如何操作了.小编今天就给初学者补习一下基础知识什么是电脑分辨率?如何进行电脑屏幕分辨率的调整?首先请各位电脑小白跟随学习啦小编认识下电脑分辨率. 确 ...

  9. 魔兽分辨率修改器的C语言实现

    通过修改注册表来完成分辨率修改 #include <stdio.h> #include <windows.h>//魔兽分辨率修改器 int main(){char regnam ...

最新文章

  1. 面试官:连框架都没用熟练,就这还来面试?
  2. 自己手写HashMap——红黑树的Java实现
  3. 数据库表设计的随笔(分库分表)
  4. Linux Kernel TCP/IP Stack — L1 Layer — NIC Controller — SKB
  5. java 处理 url_Java URL处理 - Java 教程 - 自强学堂
  6. pb 应用 迁移 linux_功能化生物炭应用研究取得系列进展
  7. webpack初学笔记 之 小案例篇demo1
  8. 白盒测试基本路径生成工具_基于基本最短路径列生成的车辆路径问题
  9. matlab 大于并且小于,Matlab:将大于(小于)1(-1)的元素转换为1(-1)的序列
  10. 自断前程,未来80%IT工作将实现自动化
  11. java netty能做什么_开发:Netty快速入门,一看就懂!
  12. maven jersey mysql_使用Maven和Jersey Framework开发REST风格Web Service
  13. 偏差、方差和噪声的权衡关系
  14. ascll编码表图片_ASCII码一览表,ASCII码对照表
  15. 电影院购票系统ssm (含论文)
  16. 变色龙配置文件功能介绍
  17. 计算机网络原理第五版课后--习题答案
  18. Android WebView下载apk
  19. 锁定关闭计算机快捷键,锁定电脑快捷键怎么更改?
  20. SQLite实现获取本机短信数据

热门文章

  1. 搜索引擎就是百度、雅虎吗?
  2. Swift与Objective-C:重新认识苹果的编程语言(1)
  3. Invalid drive: d:\的解决办法
  4. JavaScript函数式编程之偏函数(Partial Function)
  5. 3GPP R17,到底在研究些什么?
  6. 什么是负载均衡?分布式负载均衡又是什么?
  7. 深入剖析Glide源码-4.15版本(二)
  8. C++进阶教程 - 委托构造函数和继承构造函数
  9. 使用split()切割文件名的时候出现下标越界的问题
  10. par函数cex参数-控制文字和点的大小