Silverlight之页面跳转及参数传递(9)
2012-04-15 20:18
405 查看
页面跳转及参数传递
代码下载
一、 页面跳转
1. 方式1 RootVisual
this.RootVisual =
new MainPage();
2. 方式2 Content属性
Page1 p1 =new
Page1();
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=new
Page2();
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(new
Uri(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 =new
Page1();
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=new
Page2();
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(new
Uri(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 - Xaml 和 asp.net 页面之间跳转及参数传递
- SilverLight页面跳转及参数传递
- JSP中参数传递以及页面跳转
- WP8页面跳转实现参数传递的多种方法(已完善)
- 【转】(超详细)jsp与servlet之间页面跳转及参数传递实例
- 微信小程序 页面跳转 传递参数
- angularjs项目需要从一个页面跳转到另一个页面,同时需要传递一个参数。
- 从一个jsp页面跳转到另一个jsp页面时的参数传递
- 详解微信小程序 页面跳转 传递参数
- Jquery跳转页面传递参数以及获取url的参数
- Android,使用Intent或Bundle传递参数,跳转页面
- Android 实现页面跳转并传递参数教程
- [微信小程序]页面跳转对象参数的传递方法
- html两个页面跳转时传递参数location.search
- HTML页面跳转及参数传递问题
- html页面跳转传递参数
- JQueryMobile页面跳转参数的传递解决方案
- HTML页面做中间页跳转传递参数
- jsp页面间跳转 url传递中文参数乱码 以及后续细节处理
- 如何使PHP程序执行页面跳转时传递大量参数