SilverLight 4页面跳转大全

//Silverlight页面的跳转
//(Application.Current.RootVisual as IContent).Content = new DragControl();
//普通页面跳转
HtmlWindow html = HtmlPage.Window;
//html.Navigate(new Uri("普通网址
html.Navigate(new Uri("../Index.aspx", UriKind.Relative));//相对路径

 
参考一:
方法一: 可跳转到网页
                  HtmlWindow html = HtmlPage.Window;
                  html.Navigate(new Uri(item.Link_Page.Trim(), UriKind.Relative), "_blank");

                   //System.Windows.Browser.HtmlPage.PopupWindow(new Uri(HtmlPage.Document.DocumentUri, item.Link_Page.Trim()), "_Blank",null);

方法二:跳转到Xaml页
            this.Content = new About();

方法三:框架跳转item.Link_Page.Trim():代表xaml名 e.g: /views/home  
           events = new System.Uri(item.Link_Page.Trim(), UriKind.Relative);
           this.ContentFrame.Source = events;

框架
 <navigation:Frame x:Name="ContentFrame" Style="{StaticResource ContentFrameStyle}"
                              Source="/Views/About" Navigated="ContentFrame_Navigated" NavigationFailed="ContentFrame_NavigationFailed">
                <navigation:Frame.UriMapper>
                  <uriMapper:UriMapper>
                    <uriMapper:UriMapping Uri="" MappedUri="/Views/Home.xaml"/>
                    <uriMapper:UriMapping Uri="/Views/{pageName}" MappedUri="/Views/{pageName}.xaml"/>  
                    <uriMapper:UriMapping Uri="/{pageName}" MappedUri="/{pageName}.xaml"/>
                  </uriMapper:UriMapper>
                </navigation:Frame.UriMapper>              
            </navigation:Frame> 
链接
<HyperlinkButton x:Name="userid" NavigateUri="/Views/Home"  Style="{StaticResource LinkStyle}" TargetName="ContentFrame" />
 
参考二:
问题:从页面A跳转到页面B.
方法:在页面A的cs文件中:
1.先引入命名空间:
    using System.Windows.Browser;
2.跳转语句:

HtmlWindow html = HtmlPage.Window;
html.Navigate(new Uri("/Default.aspx",UriKind.Relative));注意黑体字部分,如果要使用相对路径的话,必须加上,全路径的话,可以不用.
OK了,今天刚搞好的,也不知道可有其他办法了,再来找找,要有更好的办法,我再加进来吧.

 

 

页间跳转

在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类型的公有属性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值