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

Windows Phone 7 学习流程攻略(二)

[复制链接]

尚未签到

发表于 2015-5-14 08:57:00 | 显示全部楼层 |阅读模式
  今天介绍,本教程的第二章。
  第二章 手机方向
  一,Silverlight和自动布局
  在xaml中可以通过,SupportedOrientations来设置程序中支持的手机方向。
  在切换手机方向后,Silverlight会自动根据xaml中的设置重新布局,所以在设计时要考虑屏幕方向改变后程序的切换效果。
  书中利用TextBlock中的VerticalAlignment和HorizontalAlignment进行了布局演示。
  --------------------
  Tips:
  1. VerticalAlignment可设置为Top,Center,Bottom。
  HorizontalAlignment可设置为Left,Center,Right。
  2. Margin属性的类型是Thickness。在xaml中Thickness可以有一个参数(四个方向全都是这个数值),两个参数(左右方向为第一个参数,上下方向为第二个参数),四个参数(不用说了,代表左上右下)
  3. 可以在控件添加SizeChanged属性事件,于cs文件中实现该控件大小改变时需要做的工作。
  4. 在xaml中以命名的标签可以,在cs中调用。命名方式有两种x:Name和Name,书中解释属性x:Name是xmal文件标签的命名方式,而属性Name是继承FrameworkElement的,因此不是所有标签都可以用Name命名。(后面会看见各种TransForm都不是继承FrameworkElement的,因此只能用x:Name命名)
  5. 可以在xaml中修改属性shell:SystemTray.IsVisible来显示或隐藏任务栏。如果用户不需要知道事件,而你需要32个像素的空间时,大可以隐去任务栏。
  -----------------------
  
  二,方向改变事件
  Silverlight中,可以在cs文件中重载PhoneApplicationPage的OnOrientationChanged函数来截获屏幕方向发生变化的事件。(当然是在SupportedOrientations允许屏幕方向改变的前提下)参数中的Orientation属性是新的屏幕方向。
  
  三,XNA中的方向设置
  XNA中默认的是Landscape方向,不过在Game1()构造函数构造了graphics之后,可以通过设置他的SupportedOrientations属性来声明允许的屏幕方向。
  ---------------------
  Tips:
  1. 设置许可方向的方法在Game1(),构造graphics对象后调用
  
     graphics.SupportedOrientations = DisplayOrientation.Portrait |     
                                              DisplayOrientation.LandscapeLeft |      
                                              DisplayOrientation.LandscapeRight;
    2. 在屏幕方向是Portrait的时候屏幕的默认大小是240*240,这时可以设置graphics的PreferedBackBufferWidth和PreferedBackBufferHeight来调整屏幕缓冲大小。
  3. graphics.IsFullScreen可以用来设置是否全屏。
  4. 由于XNA中没有提供屏幕方向改变时响应的事件,因此只能在Update函数中实时刷this.GraphicsDevice.Viewport来计算此时屏幕大小,改变XNA内容,刷新画图。
  5. 还可以通过this.Window.ClientBounds得到工作区域的矩形。
  --------------------
  
  四,一个简单的时钟实现
  这段介绍了如何分别用Silverlight和XNA来实现一个时钟。
  
  Silverlight比较简单利用System.Windows.Threading的DispatcherTimer建立一个对象。设置步长DispatcherTimer.Interval,添加DispatcherTimer.Tick事件的回调委托,DispatcherTimer.Start开始。
  然后按事件回调一刷界面就可以了。
  这里着重介绍了Silverlight的刷新方法,不是全屏刷,而是只刷改变的控件。
  
  XNA通过对在Update函数中对时间差的对比来判断是否超过一秒钟,如果超过一秒就刷新文字内容,否则调用SuppressDraw();来取消这次执行完Update后,需要执行的Draw函数。
  -------------------
  Tips:
  1. 还是由于垃圾回收影响效率的问题,需要在Update中做字符操作的时候,在声明字符串的时候用StringBuilder类代替String类型。
  2. 在Update函数中调用SuppressDraw函数可以取消这次Update后应该执行的Draw函数。这是一个可以减少耗电的好把戏。
  -------------------
  
  下一章介绍触摸。

运维网声明 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-66790-1-1.html 上篇帖子: Windows Phone 7 Tip (16) 下篇帖子: Windows Phone 7 开发之深入浅出-进阶篇之开发模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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