您的位置:首页 > 其它

快速构建Windows 8风格应用10-设备方向

2012-09-25 10:35 316 查看
本篇博文主要介绍常用支持Windows 8操作系统设备的方向、如何获取当前设备方向、DisplayProperties类

常用支持Windows 8操作系统设备的方向
在我们常用的设备当中,Windows 8是通过什么来监控设备方向呢?答案是方向传感器,那么对于设备的不同方向,方向传感器都对应哪些方向值呢?如下表:


我们可以从表中知道:
1) 设备方向为水平方向向上(Portrait Up时,对应传感器值为NotRotated(未发生旋转)
我们可以通过对比设备中Windows按钮的位置来识别不同方向,如下图所示:


2) 设备方向为竖直方向向左(Landscape Left时,对应传感器值为Rotated90DegreesCounterclockwise(旋转90度);我们可以通过对比设备中Windows按钮的位置来识别不同方向,如下图所示:


3) 设备方向为水平方向向下(Portrait Down时,对应传感器值为Rotated180DegreesCounterclockwise(旋转180度),我们可以通过对比设备中Windows按钮的位置来识别不同方向,如下图所示:


4) 设备方向为竖直方向向右(Landscape Right时,对应传感器值为Rotated270DegreesCounterclockwise(旋转270度);我们可以通过对比设备中Windows按钮的位置来识别不同方向,如下图所示:


5) 设备方向为正面朝上(Face Up时,对应传感器值为Faceup
6) 设备方向为正面朝下(Face Down时,对应传感器值为Facedown

如何获取当前设备方向值
我们如何在代码中获取这么设备方向值呢?
第一步:初始化SimpleOrientationSensor传感器对象。
第二步:注册传感器OrientationChanged事件。
第三步:在OrientationChanged事件方法中通过e. Orientation属性得到方向值。
具体代码可如下:




代码中DisplayOrientation方法如下:


假如我们使用XAML+C#来编写一个游戏类应用,就可以通过监控设备放向值的改变来控制游戏人物的不同状态了。

DisplayProperties
微软为开发者提供了一个非常重要的类:DisplayProperties。我们获取设备方向值的代码都是通过该类来实现的。
那么DisplayProperties类包含哪些重要事件和属性呢?
1) OrientationChanged事件:当方向变更时该事件被触发;
2) CurrentOrientation属性:该属性为只读属性,获取当前设备的方向;
3) NativeOrientation属性:该属性为只读属性,获取设备默认支持的方向,包含两个值:Landscape和Portrait;
4) AutoRotationPreferences属性:该属性为可读写属性,通过该属性可以读取或设置我们应用的首选方向。注意:模拟器中无法支持该属性的设置。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息