在我的应用程序中,我有一个使用dispatcherTimer和Tick方法的类计时器。每一秒,变量减少。
我希望当变量的值为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);
答案 0 :(得分: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));
}
答案 1 :(得分:0)
在App.xaml中使用RootFrame
(App.Current as App).RootFrame.Navigate(new Uri("/Page1.xaml", UriKind.RelativeOrAbsolute));