常用支持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屬性:該屬性為可讀寫屬性,通過該屬性可以讀取或設置我們應用的首選方向。注意:模擬器中無法支持該屬性的設置。
本文出自 “王祖康” 博客,請務必保留此出處http://wzk89.blog.51cto.com/1660752/1005930