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");
}
}
现在就可以查看一下效果了