Windows Phone 7的螢幕方向及變更處理

來源:互聯網
上載者:User

本文簡單介紹Windows Phone 7的螢幕方向,以及螢幕方向變更時所做的處理。

     Windows Phone 7的螢幕方向分為垂直方向和水平方向,但與之前Windows Mobile可以旋轉4個角度不同,Windows Phone 7垂直方向只有一種方向。還是用圖說的比較清楚:

1.垂直方向:

垂直方向不支援180度的旋轉了,想想也是,沒幾個人習慣把手機倒著用。

2.水平方向:

水平方向需要注意一下,水平方向分為左水平方向和右水平方向,這是由於螢幕下部的ApplicationBar(應用工具列)會根據該方向改變,ApplicationBar緊挨著電話的三個按鍵一側:

                   左水平方向                                                     右水平方向

注意,系統托盤的方向也改變了,即顯示時間的那一條。

一般情況下,程式都要考慮螢幕方向的頁面配置,要做出響應的處理,更要注意左水平方向和右水平方向的差異。

在項目中,添加新的頁面時,就可以選擇螢幕的方向:

PhoneApplicationPage頁面屬性Orientation可以設定應用程式頁面初始的方向,不過該屬性不能在代碼中設定,我試了一下,在代碼中可以設定該屬性,但是螢幕的方向沒有改變。那怎樣讓UI適應旋轉螢幕呢?PhoneApplicationPage的SupportedOrientations屬性來設定,但不要根據代碼修改螢幕的顯示方式。

SupportedPageOrientation.Landscape 支援水平方向

SupportedPageOrientation.Portrait 支援垂直方向

SupportedPageOrientation.PortraitOrLandscape 支援水平和垂直方向(頁面會在電話旋轉時自動選擇相應的整頁模式)

 

樣本

 

下面的樣本示範螢幕方向的設定及變更處理:

建立一個Windows Phone 7的應用程式,

首先在Page中放入一個TextBlock,將其Text屬性設定為垂直。

 

1 <TextBlock Height="36" HorizontalAlignment="Left" Margin="150,127,0,0" Name="textBlock1" Text="垂直" VerticalAlignment="Top" TextAlignment="Center" FontSize="30" Width="152" />

編譯執行,介面如下:

點擊右側旋轉按鈕,螢幕發生旋轉,當前沒有做任何處理,介面當然不會自適應水平狀態,介面如下:

預設情況下,MainPagePage的SupportedOrientations屬性被設定為Portrait。

在XAML中將SupportedOrientations屬性設定為PortraitOrLandscape。

1 SupportedOrientations="PortraitOrLandscape"

 

 

再編譯執行試試,很簡單吧,就一行代碼,螢幕就能自適應旋轉螢幕了 :) 介面如下:

當前螢幕已經是水平狀態了,想要做些處理,比如在TextBlock中顯示“水平”,這時就需要處理旋轉事件了。

在Page中加入OrientationChanged事件的處理。

 

01 private void PhoneApplicationPage_OrientationChanged(object sender, OrientationChangedEventArgs e)
02 {
03     if (PageOrientation.LandscapeLeft == e.Orientation)
04     {
05         textBlock1.Text = "水平(左)";
06     }
07     else if (PageOrientation.LandscapeRight == e.Orientation)
08     {
09         textBlock1.Text = "水平(右)";
10     }
11     else
12     {
13         textBlock1.Text = "垂直";
14     }
15 }

這樣旋轉螢幕,TextBlock中的文字就會做出相應的改變了。旋轉螢幕的相關操作,都可以在該事件響應中處理。

介面如下:

代碼下載

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.