Silverlight helix代码隐藏页面导航

时间:2009-02-12 22:00:58

标签: silverlight navigation

我是Silverlight的新手,从我收集的内容来看,没有关于分页的任何直接功能,所以我从here下载了螺旋项目。我发现它非常有用,但未能找到一种方法(使用螺旋)来通过代码隐藏来浏览页面。我需要这个的原因是,如果方法成功执行,我想导航到另一个页面。

1 个答案:

答案 0 :(得分:2)

在RootPage.xaml.cs的OnLoaded事件中,您可以看到以下代码:

this.rootFrame.Navigate( new Uri( "Page1.xaml", UriKind.Relative ) );

当RootPage通过调用RootPage.xaml中定义的Frame控件实例的Navigate方法加载时,以编程方式导航到Page1.xaml(实现NavigationPage):

<h:Frame x:Name="rootFrame" Grid.Row="0" Grid.Column="1"
         NavigationUIVisibility="Visible" Margin="4" />

这个Navigate方法依次调用Frame封装的StackJournal实例的Navigate方法。

如果你是一个无法直接访问父框架的页面的代码隐藏(即除了RootPage之外的任何页面),例如Page1.xaml,你需要引发一个RequestNavigate事件,该事件将冒泡到最近的父框架。

以下代码显示如何以编程方式从Page1.xaml上的按钮单击直接导航到Page3.xaml:

private void TestButton_Click(object sender, RoutedEventArgs e)
{
    this.RaiseEvent(NavigationLink.RequestNavigateEvent,
        new RequestNavigateEventArgs(new Uri("Page3.xaml", UriKind.Relative),
        "rootFrame"));
}

请注意,targetName是“rootFrame”,即最终执行导航的父Frame对象。