时间: 2019-09-24阅读: 128标签: 屏幕
今天介绍,本教程的第二章。
大家有时候有需求在屏幕方向改变的时候重新执行某个渲染函数,以获取方向改变后的实际宽高,但是首次加载的执行函数要在其他地方执行,这时候可以加一个flag的状态值,默认为false,当第一次检测到方向改变的时候再改为true。
第二章 手机方向
this.supportOrientation = typeof window.orientation === ‘number‘; // 检查屏幕方向 checkScreenOrientation() { if (this.supportOrientation) { if (window.orientation === 0) { this.screenOrientation = ‘portrait‘; } if (window.orientation === 90 || window.orientation === -90) { this.screenOrientation = ‘landscape‘; } } else { this.screenOrientation = (window.innerWidth window.innerHeight) ? ‘landscape‘ : ‘portrait‘; } // if (this.orientationFlag) { // 在为true的时候交换屏幕长宽 let temp = this.bodyWidth; // this.bodyWidth = this.bodyHeight; // this.bodyHeight = temp; // } else { // this.orientationFlag = true; // }i f(this.orientationFlag){ imageMof();//重新设置图片高度 }else { this.orientationFlag = true; }}
一,Silverlight和自动布局
在xaml中可以通过,SupportedOrientations来设置程序中支持的手机方向。
在切换手机方向后,Silverlight会自动根据xaml中的设置重新布局,所以在设计时要考虑屏幕方向改变后程序的切换效果。
书中利用TextBlock中的VerticalAlignment和HorizontalAlignment进行了布局演示。
Tips:
- 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属性是新的屏幕方向。
10bet,
三,XNA中的方向设置
XNA中默认的是Landscape方向,不过在Game1()构造函数构造了graphics之后,可以通过设置他的SupportedOrientations属性来声明允许的屏幕方向。
Tips:
本文由10bet发布于Web前端,转载请注明出处:js监听屏幕方向如何第一次默认不监听
关键词: