SilverLight页面跳转及参数传递
2012-06-12 16:27
337 查看
页面跳转及参数传递
代码下载
一、
页面跳转
1.
方式1 RootVisual
this.RootVisual =
new MainPage();
2.
方式2 Content属性
Page1 p1 =newPage1();
this.Content=p1;
3.
方式3 Frame,HyperlinkButton
1)定义HyperlinkButton
<HyperlinkButton Content="导航"Height="23"
HorizontalAlignment="Left" Margin="28,12,0,0" Name="hyperlinkButton1"
VerticalAlignment="Top" Width="100" NavigateUri="/page1.xaml" TargetName="frame1"
/>
2)定义框架
<sdk:Frame Height="190"
HorizontalAlignment="Left" Margin="12,75,0,0" Name="frame1" VerticalAlignment="Top"
Width="350" Source="/page2.xaml"/>
后台:
this.frame1.Navigate(newUri("/SilverlightControl2.xaml",UriKind.Relative));
4.
方式4 Border
<Border BorderBrush="Silver" BorderThickness="1"
Height="100" Name="border1" Width="200"></Border>
Page2 p2=newPage2();
border1.Child = p2;
5.
方式5 uriMapper
1)定义uriMapper
<navigation:Frame x:Name="ContentFrame"
Style="{StaticResource ContentFrameStyle}"
Source="/Home" Navigated="ContentFrame_Navigated" NavigationFailed="ContentFrame_NavigationFailed">
<navigation:Frame.UriMapper>
<uriMapper:UriMapper>
<uriMapper:UriMapping Uri=""
MappedUri="/Views/Home.xaml"/>
<uriMapper:UriMapping Uri="/{pageName}"
MappedUri="/Views/{pageName}.xaml"/>
</uriMapper:UriMapper>
</navigation:Frame.UriMapper>
</navigation:Frame>
2)应用
<Border x:Name="LinksBorder"
Style="{StaticResource LinksBorderStyle}">
<StackPanel x:Name="LinksStackPanel"
Style="{StaticResource LinksStackPanelStyle}">
<HyperlinkButton x:Name="Link1"
Style="{StaticResource LinkStyle}"
NavigateUri="/Home" TargetName="ContentFrame"Content="主页"/>
<Rectangle x:Name="Divider1"
Style="{StaticResource DividerStyle}"/>
<HyperlinkButton x:Name="Link2" Style="{StaticResource
LinkStyle}"
NavigateUri="/About"TargetName="ContentFrame" Content="关于"/>
<Rectangle x:Name="Divider2"
Style="{StaticResource DividerStyle}"/>
<HyperlinkButton x:Name="Link3"
Style="{StaticResource LinkStyle}"
NavigateUri="/PageTest"TargetName="ContentFrame" Content="测试"/>
</StackPanel>
</Border>
二、
页面间参数传递
Ø 普通参数传递方式
1)传递参数
string uriText =
String.Format("/page3.xaml?UserID={0}&Role={1}","刘备","董事长");
this.frame1.Navigate(newUri(uriText,
UriKind.Relative));
2)接收参数
this.lblUserID.Text=
this.NavigationContext.QueryString["UserID"].ToString();
this.lblRole.Text=
this.NavigationContext.QueryString["Role"].ToString();
Ø 利用UriMapper
<uriMapper:UriMapper x:Name="PageMapper">
<uriMapper:UriMapping Uri=""
MappedUri="/Views/Home.xaml"/>
<uriMapper:UriMapping Uri="/About/{name}/{url}"
MappedUri="/Views/About.xaml?name={name}&url={url}"/>
<uriMapper:UriMapping Uri="/About/{parameter}"
MappedUri="/Views/About.xaml?parameter={parameter}"/>
<uriMapper:UriMapping Uri="/PageTest/{name}/{url}"
MappedUri="/Views/PageTest.xaml?UserName={name}&url={url}"/>
<uriMapper:UriMapping Uri="/PageTest/{parameter}" MappedUri="/Views/PageTest.xaml?parameter={parameter}"/>
<uriMapper:UriMapping Uri="/{pageName}"
MappedUri="/Views/{pageName}.xaml"/>
</uriMapper:UriMapper>
1)传递参数:
<HyperlinkButton x:Name="Link3"
Style="{StaticResource LinkStyle}"
NavigateUri="/PageTest/传智播客/it.cast.net" TargetName="ContentFrame"
Content="测试"/>
2)接收参数:
txtUserID.Text = "名字:" +this.NavigationContext.QueryString["UserName"]
+"网址:" +this.NavigationContext.QueryString["url"];
代码下载
代码下载
一、
页面跳转
1.
方式1 RootVisual
this.RootVisual =
new MainPage();
2.
方式2 Content属性
Page1 p1 =newPage1();
this.Content=p1;
3.
方式3 Frame,HyperlinkButton
1)定义HyperlinkButton
<HyperlinkButton Content="导航"Height="23"
HorizontalAlignment="Left" Margin="28,12,0,0" Name="hyperlinkButton1"
VerticalAlignment="Top" Width="100" NavigateUri="/page1.xaml" TargetName="frame1"
/>
2)定义框架
<sdk:Frame Height="190"
HorizontalAlignment="Left" Margin="12,75,0,0" Name="frame1" VerticalAlignment="Top"
Width="350" Source="/page2.xaml"/>
后台:
this.frame1.Navigate(newUri("/SilverlightControl2.xaml",UriKind.Relative));
4.
方式4 Border
<Border BorderBrush="Silver" BorderThickness="1"
Height="100" Name="border1" Width="200"></Border>
Page2 p2=newPage2();
border1.Child = p2;
5.
方式5 uriMapper
1)定义uriMapper
<navigation:Frame x:Name="ContentFrame"
Style="{StaticResource ContentFrameStyle}"
Source="/Home" Navigated="ContentFrame_Navigated" NavigationFailed="ContentFrame_NavigationFailed">
<navigation:Frame.UriMapper>
<uriMapper:UriMapper>
<uriMapper:UriMapping Uri=""
MappedUri="/Views/Home.xaml"/>
<uriMapper:UriMapping Uri="/{pageName}"
MappedUri="/Views/{pageName}.xaml"/>
</uriMapper:UriMapper>
</navigation:Frame.UriMapper>
</navigation:Frame>
2)应用
<Border x:Name="LinksBorder"
Style="{StaticResource LinksBorderStyle}">
<StackPanel x:Name="LinksStackPanel"
Style="{StaticResource LinksStackPanelStyle}">
<HyperlinkButton x:Name="Link1"
Style="{StaticResource LinkStyle}"
NavigateUri="/Home" TargetName="ContentFrame"Content="主页"/>
<Rectangle x:Name="Divider1"
Style="{StaticResource DividerStyle}"/>
<HyperlinkButton x:Name="Link2" Style="{StaticResource
LinkStyle}"
NavigateUri="/About"TargetName="ContentFrame" Content="关于"/>
<Rectangle x:Name="Divider2"
Style="{StaticResource DividerStyle}"/>
<HyperlinkButton x:Name="Link3"
Style="{StaticResource LinkStyle}"
NavigateUri="/PageTest"TargetName="ContentFrame" Content="测试"/>
</StackPanel>
</Border>
二、
页面间参数传递
Ø 普通参数传递方式
1)传递参数
string uriText =
String.Format("/page3.xaml?UserID={0}&Role={1}","刘备","董事长");
this.frame1.Navigate(newUri(uriText,
UriKind.Relative));
2)接收参数
this.lblUserID.Text=
this.NavigationContext.QueryString["UserID"].ToString();
this.lblRole.Text=
this.NavigationContext.QueryString["Role"].ToString();
Ø 利用UriMapper
<uriMapper:UriMapper x:Name="PageMapper">
<uriMapper:UriMapping Uri=""
MappedUri="/Views/Home.xaml"/>
<uriMapper:UriMapping Uri="/About/{name}/{url}"
MappedUri="/Views/About.xaml?name={name}&url={url}"/>
<uriMapper:UriMapping Uri="/About/{parameter}"
MappedUri="/Views/About.xaml?parameter={parameter}"/>
<uriMapper:UriMapping Uri="/PageTest/{name}/{url}"
MappedUri="/Views/PageTest.xaml?UserName={name}&url={url}"/>
<uriMapper:UriMapping Uri="/PageTest/{parameter}" MappedUri="/Views/PageTest.xaml?parameter={parameter}"/>
<uriMapper:UriMapping Uri="/{pageName}"
MappedUri="/Views/{pageName}.xaml"/>
</uriMapper:UriMapper>
1)传递参数:
<HyperlinkButton x:Name="Link3"
Style="{StaticResource LinkStyle}"
NavigateUri="/PageTest/传智播客/it.cast.net" TargetName="ContentFrame"
Content="测试"/>
2)接收参数:
txtUserID.Text = "名字:" +this.NavigationContext.QueryString["UserName"]
+"网址:" +this.NavigationContext.QueryString["url"];
代码下载
相关文章推荐
- Silverlight之页面跳转及参数传递(9)
- Silverlight - Xaml 和 asp.net 页面之间跳转及参数传递
- jquerymobile页面跳转和参数传递
- 从jsp页面跳转到另一个jsp页面怎么传递参数?
- ASP.NET页面跳转并传递参数
- 页面之前跳转 和页面之间传递参数
- 使用Intent或Bundle传递参数,跳转页面。
- Android Activity中使用Intent实现页面跳转与参数传递的方法
- JQueryMobile页面跳转参数的传递解决方案
- Swift - 纯代码实现页面segue跳转,以及参数传递
- 11. jsp与servlet之间页面跳转及参数传递实例
- 2.response跳转: a.客户端跳转,地址栏改变; b.所有代码执行完毕后跳转; c.跳转后的页面不能使用上一个页面的request属性; d.使用地址重写传递参数(respon
- 微信小程序的页面跳转和参数传递,页面生命周期
- 在Js页面通过POST传递参数跳转到新页面详解
- html中如何在页面跳转中传递参数
- {HTML5}JQueryMobile页面跳转参数的传递解决方案
- ReactNative基础(五)使用react-navigation实现页面的跳转、参数的传递(StackNavigator
- 小程序页面跳转传递多个参数
- 11. jsp与servlet之间页面跳转及参数传递实例
- Activity中使用Intent实现页面跳转与参数的传递