博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

windowsphone7方向改变极其变更处理

Posted on 2011-03-09 08:37  星尘的天空  阅读(234)  评论(0编辑  收藏  举报

Windows Phone 7的屏幕方向分为垂直方向和水平方向,但与之前Windows Mobile可以旋转4个角度不同,Windows Phone 7垂直方向只有一种方向

1)垂直方向

2)水平方向
水平方向需要注意一下,水平方向分为左水平方向和右水平方向,这是由于屏幕下部的ApplicationBar(应用工具栏)会根据该方向改变,ApplicationBar紧挨着电话的三个按键一侧:

一般情况下,程序都要考虑屏幕方向的页面布局,要做出响应的处理,更要注意左水平方向和右水平方向的差异。

PhoneApplicationPage页面属性Orientation可以设置应用程序页面初始的方向,不过该属性不能在代码中设置,我试了一下,在代码中可以设置该属性,但是屏幕的方向没有改变。那怎样让UI适应屏幕旋转呢?PhoneApplicationPage的SupportedOrientations属性来设置,但不要根据代码修改屏幕的显示方式。

SupportedPageOrientation.Landscape 支持水平方向

SupportedPageOrientation.Portrait 支持垂直方向

SupportedPageOrientation.PortraitOrLandscape 支持水平和垂直方向(页面会在电话旋转时自动选择相应的页面视图)
 

处理步骤:

1)为当前的窗体添加窗口方向改事件的侦听函数

public MainPage()
        {
            InitializeComponent();
            this.OrientationChanged += new EventHandler<OrientationChangedEventArgs>(oricentationChangedEvent);
        }

2)实现侦听函数,对改变进行操作

   private void oricentationChangedEvent(object sender, OrientationChangedEventArgs e)
        {
            if (e.Orientation == PageOrientation.LandscapeLeft)
            {
                MessageBox.Show("LandscapeLeft");
            }
            else if (e.Orientation == PageOrientation.LandScapeRight)
            {
                MessageBox.Show("LandScapeRight");
            }
            else if (e.Orientation == PageOrientation.Portrait)
            {
                MessageBox.Show("MM");
            }
        }

现在就可以查看一下效果了