您的位置:首页 > 其它

Windows Phone笔记(2)方向处理之动态布局

2012-02-12 06:38 405 查看

1.动态布局

  默认情况下,Windows Phone应用程序在竖屏模式(垂直方向)下运行,当手机改变方向时我们的应用程序也应该能够根据方向的改变做出相应的布局调整。运行之前创建的HelloWindowsPhone项目程序,改变模拟器中屏幕的的方向:

MainPage.xaml.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;

namespace SilverlightOrientationDisplay
{
public partial class MainPage : PhoneApplicationPage
{
// 构造函数
public MainPage()
{
InitializeComponent();

}
private void PhoneApplicationPage_OrientationChanged(object sender, OrientationChangedEventArgs e)
{
if ((e.Orientation & PageOrientation.Portrait) == (PageOrientation.Portrait))
{
Grid.SetRow(buttonList, 1);
Grid.SetColumn(buttonList, 0);
}
else
{
Grid.SetRow(buttonList, 0);
Grid.SetColumn(buttonList, 1);
}

}

}
}


运行效果如下:

竖屏,按钮始终在图片下方



横屏,按钮始终在图片右边。





当然除了像我们前面这样,直接在Xaml中PhoneApplicationPage标记中声明方向改变事件之外还可以通过重写基类PhoneApplicationPage的虚方法OnorientationChanged来实现相同的效果。该虚方法是protected的。

  好了,让我们来回顾前面介绍的内容:把MainPage.xaml中的PhoneApplicationPage标记的SupportedOrientations属性值更改为:PortraitOrLandscape页面即可实现屏幕的自动切换。Margin在页面布局中非常重要,用来设置一个元素所有外边距的宽度。当屏幕方向发生改变时会触发OrientationChanged事件,通过为事件添加相应代码或者重新此方法以实现相应的效果。

参考资料:

  http://msdn.microsoft.com/zh-cn/library/ff769553(v=vs.92).aspx

  《Programming Windows Phone 7 Microsoft Silverlight Edition》


作者:晴天猪

出处:http://www.cnblogs.com/IPrograming

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。


  Windows Phone开发者交流群:79339880,欢迎大家来一起讨论交流,共同学习进步。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: