设为首页 收藏本站
查看: 930|回复: 0

Windows Phone 7开发学习(四)--设备方向

[复制链接]

尚未签到

发表于 2015-5-11 11:13:53 | 显示全部楼层 |阅读模式
  最近几天忙公司另外一个项目,没有时间来整理windows phone的东西,今天补上。
  上篇我们已经讨论了windows phone上的一个专用按钮---返回按钮。这篇我们将会把注意力放在英俊爱你的另一个方面:设备方向

Portrait vs. Landscape
  尽管不太明显,portrait是设备的垂直放置方向,而landscape是水平放置方向。这些在任意的wp7程序上都是可以设置的,但是默认情况下,Silverlight程序开始于portrait,而XNA开始于landscape。(游戏一般都是需要更大的屏幕)。在这篇文章中,我们将会将注意力放在Silverlight上,以及我们如何处理用户在使用程序时将设配方向改变的情况。
  你的默认工程将会是“portrai-only”
  如果你看一下MainPage.xaml文件的头信息,你将会看到两个属性:


SupportedOrientations="Portrait" Orientation="Portrait"
  将SupportedOrientations看成你的程序支持列表。你可以将它设置成以下属性值之一:


  • Portrait (the default)
  • Landscape
  • PortraitOrLandscape
  Orientation值是你希望程序开始使用时的设定。他有很多值,但是记住如果要从landscape开始,你必须将landscape设置为选项。如下是orientation的起始值:


  • Landscape
  • LandscapeLeft (tip the phone left)
  • LandscapeRight (tip the phone right)
  • Portrait
  • PortraitDown (normal vertical position)
  • PortraitUp (tip the phone upside-down)
  从上边你可以知道不仅可以设置使用landscape或是portrait启动,你还可以设置这些方向的定位。这将会允许你从你所喜欢的方向定位开始你的程序。

改变方向
  有两种方式将布局改变。第一种是将SupportedOrientation设置为“PortraitOrLandscape”然后让系统帮助你来进行设置。许多情况下,这不被推荐,因为你的程序将有很大可能不能够自适应屏幕。第二种方式是通过具体的代码实现,这也正是我们将会说到的。
  让我们使用一个垂直启动方向的程序进行示范。如下是例子:
   DSC0000.png DSC0001.png
  你看到在landscape情况下,许多按钮都开始偏离屏幕。这是一个不好的用户体验。一种比较方便的方式是丢弃title,我确信我们的程序用户将会知道这是一个计算器,所以也许当他们在landscape模式下时,我们可以讲title去掉。我们可以同样重新排布我们的按钮,如果这些对你的程序有更大的帮助就做吧。本文的目的是展示如何修改程序,而不是指示你具体要修改什么。这是我使title小时并且修复问题的代码:








view sourceprint?




01using System;



02using System.Collections.Generic;



03using System.Linq;



04using System.Net;



05using System.Windows;



06using System.Windows.Controls;



07using System.Windows.Documents;



08using System.Windows.Input;



09using System.Windows.Media;



10using System.Windows.Media.Animation;



11using System.Windows.Shapes;



12using Microsoft.Phone.Controls;



13  



14namespace Day4_DeviceOrientation



15{



16    public partial class MainPage : PhoneApplicationPage



17    {



18        // Constructor



19        public MainPage()



20        {



21            InitializeComponent();



22            this.OrientationChanged += new EventHandler(MainPage_OrientationChanged);



23        }



24  



25        void MainPage_OrientationChanged(object sender, OrientationChangedEventArgs e)



26        {



27            if ((e.Orientation == PageOrientation.LandscapeRight)||(e.Orientation == PageOrientation.LandscapeLeft))



28            {



29                TitlePanel.Visibility = Visibility.Collapsed;



30            }



31            else if ((e.Orientation == PageOrientation.PortraitDown) || (e.Orientation == PageOrientation.PortraitUp))



32            {



33                TitlePanel.Visibility = Visibility.Visible;



34            }



35        }



36    }



37}
  因为我只是关注于程序是landscape还是portrait,我正在只是检测这两种状态。你当然可以自己根据需要设置不同的代码。
  你注意到我为这个OrientationChanged创建了一个事件处理。这是识别发生时间的最简单方式,但是你还可以通过Accelerometer,这些将会在第十一天讲到。下面是代码运行以后的画面:
   DSC0002.png
  原文地址:http://www.jeffblankenburg.com/post/31-Days-of-Windows-Phone-7c-Day-4-Device-Orientation.aspx

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-65783-1-1.html 上篇帖子: Windows 7 下安装 Delphi 7 下篇帖子: 让Windows 7的互联网电视帮您更简单地度过周末
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表