返回首页


导航是一个重要的Web应用程序的基本方面之一。 ,在早期版本的Silverlight导航系统丢失,untilnbsp;的Silverlight 3这个博客帖子是所有导航框架的概念,并试图总结整体观念[查看在线这个职位。基本概念帧导航系统的概念围绕{A}。帧控制作为一个网页的容器行为,验证状态,并保持导航的历史。帧可以在特定时间举办的一页。
{A2}来源:帧的源属性定义的默认页面加载的应用程序初始化时。浏览(URI URI):Navigate方法导航到特定的URI从code.nbsp;

<sdk:Frame Margin="0,37,0,-15" 

Name="frameContainer" 



Source="/View/Home.xaml"/>
页{A3}是它的导航能力,并允许加载一个框架内自我控制的超集。{A4} 重要的是知道框架及以上Page.The图之间的关系说明之间them.Frame的关系是负责导航到一个特定页面的URI。一旦页面加载,它可以访问{A5}主机导航系统。范例一步一步创建Silverlight应用程序让我们增加了一些网页的Silverlight项目创建一个Silverlight应用程序从图的视觉Studio.As。
{A6}空间首页将加载与导航超链接的点击内容页面(查看文件夹)。
{A7}添加事件处理程序来导航
对于项目的空间首页XAML代码如下。{C}
注意HyperlinkBut​​ton"首页??单击事件。它背后的逻辑导航到特定的页面调用的代码。
private void hlHome_Click(object sender, RoutedEventArgs e) 

{ 

this.frameContainer.Navigate(new Uri("/View/Home.xaml", UriKind.Relative )); 

}
新增资源未找到错误页
框架可以处理以下事件在导航到一个页面
<sdk:Frame Margin="0,37,0,-15" 

Name="frameContainer" 

Source="/View/Home.xaml" 

NavigationFailed="frameContainer_NavigationFailed" /> 

private void frameContainer_NavigationFailed(object sender, 

    System.Windows.Navigation.NavigationFailedEventArgs e) 

{ 

e.Handled = true; 

frameContainer.Navigate(new Uri(?View/ErrorPage.xaml", UriKind.Relative)); 

}
通过XAML导航
而不是上述编码方法,我们可以指定超链接的相对URI NavigateUri属性。LT; HyperlinkBut​​ton内容="什么??
<HyperlinkButton Content="About" 

Height="19" HorizontalAlignment="Left" 

Margin="57,12,0,0" Name="hlAbout" 

VerticalAlignment="Top" Width="35" 

NavigateUri="/View/About.xaml" 

TargetName="frameContainer" 

/>
通过URI的映射隐藏资源
有时是必要的,隐藏你的资源位置也为特定页面的URL是用户friendly.So我们cannbsp;使用URIMAPPER短期和意义的全名,使这个例子URIs.Suppose用户应allowednbsp; URL.To使用添加客户URIMAPPING我们需要以下2引用我们MainPage.xaml中,导航与客户???
xmlns:navigation=

    "clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation" 

xmlns:uriMapper=

    "clr-namespace:System.Windows.Navigation;assembly=System.Windows.Controls.Navigation"
我们下一步将映射到帧控制。
<sdk:Frame Margin="0,37,0,-15" 

Name="frameContainer" 



Source="/View/Home.xaml" 

NavigationFailed="frameContainer_NavigationFailed" > 



<navigation:Frame.UriMapper> 

<uriMapper:UriMapper> 

<uriMapper:UriMapping Uri="/Customers" MappedUri="/View/Customers.xaml" /> 

</uriMapper:UriMapper> 

</navigation:Frame.UriMapper> 



</sdk:Frame>

现在,我们需要设置Hyperlinknbsp; navigateURI。属性/"客户?所以这将确保客户的????映射提到MapeedUri。
<HyperlinkButton Content="Customer" 

Height="19?HorizontalAlignment="Left" 

Margin="98,12,0,0?Name="hlCustomer" 

VerticalAlignment="Top" Width="62?

NavigateUri="/Customers" 

/>

现在,客户页面可以通过新的用户友好的URI访问。 ?EM> http://localhost:6469/NavigationSystemTestPage.aspx#/客户??/ EM>从页面访问导航系统正如我们上面提到的一个页面可以访问导航系统使用NavigationService。在这个例子中,我们有仪表板页面,要求用户在客户页面上的按钮点击加载一次。这可以通过代码来实现的落后在客户页面上按一下按钮事件。
private void btnShowDashBoard_Click(object sender, RoutedEventArgs e) 

{ 

NavigationService.Navigate(new Uri("/Admin/DashBoard.xaml", UriKind.Relative)); 

}

NavigationService使页面获得主机的导航服务,用于浏览到这个网页。
{A8}最后的话
Silverlight的导航功能的支持更复杂的导航逻辑等零碎的导航,内容装载机等。这篇文章只涉及navigation.More职位的基础知识,很快将按照有关导航和Silverlight。源代码
下载源{A9}
在线| Manas_Patnaik

回答

评论会员:游客 时间:2012/01/27
您好,我经历了你的链接进行导航。我有一个查询中,我使用这个语法来浏览页面frameContainer.Navigate(新的URI("/查看/Home.xaml",UriKind.Relative))现在我想关闭的Click事件在运行时链接。刚刚开放的新链接不会帮我,因为这将需要大量资源。预先感谢MayurBheda
Manas_Patnaik
评论会员:游客 时间:2012/01/27
您好Mayur没有卸载从框架箱页面的概念。一旦你导航到一个页面的页面缓存,并在下一次用它来从缓存加载,如果你不希望缓存的页面,或限制您的高速缓存的大小,然后寻找出Frame.CacheSize财产。{A11}检查上面的链接。感谢玛纳斯Patnaikwww.manaspatnaik.com/博客回应-@manas_patnaik
Mayur Bheda
评论会员:游客 时间:2012/01/27
感谢玛纳斯,我有其他的方式。我用浮动窗口,我的问题解决了。感谢问候MayurBheda