代码改变世界

未雨绸缪,用silverlight开发windows phone-(页面间跳转以及“页间传参”、旋转屏幕)

2010-08-26 01:37  姜 萌@cnblogs  阅读(381)  评论(0编辑  收藏  举报

页间跳转

在ASP.NET中我们可以通过SESSION,HTTP REQUEST URL STRING,COOKIE,话题扯远了,silverlight又不是web。在silverlight中有个NavigationService类,提供了诸如GoBack(),GoNext(),Navigate(Uri source)等几个方法。每一个PhoneApplicationPage实例都有一个类型为NavigationService的属性。所以我们可以通过调用类似Page.NavigationService.Navigate(“/Action.xaml”);这种方式来导航至对应窗口。

由于比较简单所以具体方法不再叙述。这里有几点注意的地方:

a.使用NavigationService进行的页间导航只会发生在本应用程序的页面之间。

b.在由A导航至B的过程中,A的Unloaded事件被触发,B的Loaded事件被触发。

页间传参

NavigationService.Navigate(Uri source)中的Uri能够使用像http request url那样的方式写入参数,比如“page.NavigationService.Navigate(new Uri("/PhonePage1.xaml?a=1", UriKind.Relative));”,那么可以在导航目标页面上使用NavigationContext类的QueryString方法来获取参数,同NavigationService一样,每一个PhoneApplicationPage都含有一个NavigationContext类型的公有属性。

旋转屏幕

这个就很小儿科了,就一个api完事,设置PhoneApplicationPage的SupportedOrientations 属性可以调整屏幕方向,OrientationChanging事件会在旋转过程中触发。

SupportedOrientations = SupportedPageOrientation.Portrait | SupportedPageOrientation.Landscape

this.OrientationChanging += new EventHandler<OrientationChangedEventArgs>(Orientchanged);