0

在我的应用程序中,我有一个使用 dispatcherTimer 和 Tick 方法的 Chronometer 类。每一秒,都有一个变量减少。

我希望当变量的值为 0 时,加载一个新的 xaml 页面。

我尝试使用NavigationService,但此方法仅适用于 xaml.cs 文件。

当变量减少时可见的我的 xaml 页面是:WordPage.xaml 我要显示的 xaml 页面是:FinalPage.xaml

你能明白我想要什么吗?请帮我

编辑 :

我班级的构造函数是:

public Chrono(DispatcherTimer newTimer, TextBlock chrono, TextBlock NumEquip, P1 page1)
    {
     //Part effaced
     m_page1 = page1;
    }

并且对象 Chrono 的实例是:

MonChrono = new Chrono(newTimer, this.TimeLabel,  this);
4

2 回答 2

1

您不能创建NavigationService的实例,这是主要问题。但是您可以将您的页面对象作为参数传递并访问其NavigationService.Property

public void NavigateToPage(YouPageClass page)
{
    page.NavigationService.Navigate(new Uri("/Pages/PageToNavigateTo.xaml",
        UriKind.RelativeOrAbsolute));
}

示例项目:http ://www.abouchleih.com/wp-content/uploads/TestNavigationFromClass.zip

编辑: 我找到了更好的解决方案。不要传递页面对象,最好传递它的 NavigationService-Property,现在您可以简单地从多个页面调用相同的方法。

你班上的方法:

public static void Nav(NavigationService s, Uri destination)
{
    s.Navigate(destination);
}

从页面调用:

private void button_navigateTo_Click(object sender, RoutedEventArgs e)
{
    NavService.Nav(this.NavigationService, new Uri("/PageToNavigateTo.xaml", UriKind.RelativeOrAbsolute));
}
于 2013-10-17T09:23:45.850 回答
0

在 App.xaml 中使用 RootFrame

(App.Current as App).RootFrame.Navigate(new Uri("/Page1.xaml", UriKind.RelativeOrAbsolute));
于 2013-10-18T10:24:33.443 回答