31 Days of Windows Phone | Day #4 Device Orientation

本文转自jeffblankenbug blog.   http://www.jeffblankenburg.com博客,已每天笔记的形式发表Windows Phone 7 文章.目前JeffblankBug  的Windows Mango 31开发日记 文章已经写到第24天了。由于自己已经看他的博客时很快就看完了,看了以后没有什么感觉,现在用笔记的的形式记录下来,加深影响,加深理解,希望不要看过后就全忘记了。

   设备的方向控制。

   上一篇介绍了windows phone 手机上回退的硬件按钮。今天我们将介绍手机上的另一硬件元素,手机方向操控。

Portrait  vs  Landscape

   这个并不是很明显的原则。Portrait 是手机竖直方向竖屏显示,LandScape 就是手机横向的横屏显示。每个Windows Phone 手机上都此功能的。一般的应用开始时用竖屏的,而游戏开始的方式是横屏的(因为游戏在款屏上更容易操控).这里只要介绍的是一般应用,怎么改变手机屏蔽方向。

You Default Project Will Be "Portrait-only"

 你创建的默认应用程序,你查看MainPage.xaml头部你会发现有两个属性:

  SupportedOrientations="Portrait" Orientation="Portrait" 

  你可以查看一下SupportedOrientations属性有三个可选择项 

         Portrait(默认)

         LandScape

         Portrait Or Landscape 

   Orientation属性是你应用初始的方向,这个有许多属性值。如果你初始方向是横向的话,SupportedOrientation属性必须支持Landsape选型。Orientataion有如下属性值可写

        Landscape 

        LandscapeLeft 

        LandsapeRight

        Portrait

       PortraitDown

       PortraitUp

   从以上列表可以看出你可以设置应用初始页面时选择竖屏或者横屏。还可以规定初始设置应用的那个方向。

Changing You Orientation 

    有两种方式可以改变你的应用的方向 ,第一种方式就是设置SupportedOrientation 为PortraitOrLandscape,Windows Phone 系统会有默认操作,在许多特殊的情况下是不推荐使用默认操作的。因为有很多情况是不符合手机屏幕系统默认方向切换的。第二种方式是通过代码来实现,具体事例代码如下:

    让我们简单的调用一个计算器功能布局为整个竖屏全屏。如下图:

                  

                   

 你可以很明显的看到在横屏(Landscape)方向是有很多按钮都处于屏幕范围之外。对用户体验不是很好,提升用户体验最简单的方式是,可以隐藏页面标题,还可以重新设置页面按钮的布局,这样做的话对用户使用体验更便捷的,更有意义。而不是是你规定你要改变的细节。这里是我影藏标题栏,重新布局显示页面内容在MainPage.xaml.cs的代码

        
public MainPage() 

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

        void MainPage_OrientationChanged(object sender, OrientationChangedEventArgs e)
        {
            if ((e.Orientation == PageOrientation.LandscapeRight) || (e.Orientation == PageOrientation.LandscapeLeft))
            {
                TitlePanel.Visibility = Visibility.Collapsed;
            }
            else if ((e.Orientation == PageOrientation.PortraitDown) || (e.Orientation == PageOrientation.PortraitUp))
            {
                TitlePanel.Visibility = Visibility.Visible;
            }

 这里主要介绍介绍的是应用的Landscape 和Portrait,没有具体考虑方向规格。根据两种屏蔽状态来调用屏幕的布局,可以根据不同的方向来设计不同页面的布局。从而显示更好的用户体验。

  从代码代码中可以看到通过创建 

OrientationChanged 事件。这是用简单的方式实现。但是你必须一致使用陀螺仪功能。查看如果添加代码后的页面呈现。

                   

原文地址:http://www.jeffblankenburg.com/2010/10/04/ 

原文地址:https://www.cnblogs.com/andyyu/p/2263173.html