导航是一个重要的Web应用程序的基本方面之一。 ,在早期版本的Silverlight导航系统丢失,untilnbsp;的Silverlight 3这个博客帖子是所有导航框架的概念,并试图总结整体观念[查看在线这个职位。基本概念帧导航系统的概念围绕{A}。帧控制作为一个网页的容器行为,验证状态,并保持导航的历史。帧可以在特定时间举办的一页。
{A2}来源:帧的源属性定义的默认页面加载的应用程序初始化时。浏览(URI URI):Navigate方法导航到特定的URI从code.nbsp;
页{A3}是它的导航能力,并允许加载一个框架内自我控制的超集。{A4}
重要的是知道框架及以上Page.The图之间的关系说明之间them.Frame的关系是负责导航到一个特定页面的URI。一旦页面加载,它可以访问{A5}主机导航系统。范例一步一步创建Silverlight应用程序让我们增加了一些网页的Silverlight项目创建一个Silverlight应用程序从图的视觉Studio.As。<sdk:Frame Margin="0,37,0,-15"
Name="frameContainer"
Source="/View/Home.xaml"/>
{A6}空间首页将加载与导航超链接的点击内容页面(查看文件夹)。
{A7}添加事件处理程序来导航
对于项目的空间首页XAML代码如下。{C}
注意HyperlinkButton"首页??单击事件。它背后的逻辑导航到特定的页面调用的代码。
新增资源未找到错误页private void hlHome_Click(object sender, RoutedEventArgs e)
{
this.frameContainer.Navigate(new Uri("/View/Home.xaml", UriKind.Relative ));
}
框架可以处理以下事件在导航到一个页面
通过XAML导航
<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));
}
而不是上述编码方法,我们可以指定超链接的相对URI NavigateUri属性。LT; HyperlinkButton内容="什么??
通过URI的映射隐藏资源<HyperlinkButton Content="About"
Height="19" HorizontalAlignment="Left"
Margin="57,12,0,0" Name="hlAbout"
VerticalAlignment="Top" Width="35"
NavigateUri="/View/About.xaml"
TargetName="frameContainer"
/>
有时是必要的,隐藏你的资源位置也为特定页面的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