This question already has an answer here:
Navigate to another page at OnNavigatedTo?

(1个答案)


5年前关闭。




我在导航到本节的下一页时遇到问题:
    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
            Debug.WriteLine("Test1");
            Frame.Navigate(typeof(LoginView));
            Debug.WriteLine("Test2");
    }

如果仅在OnNavigatedTo中调用Frame.Navigate方法,则根本无法使用。在调试时,我看到“Test1”和“Test2”,但没有其他反应。
任何想法?项目:Windows Phone Store App 8.1

最佳答案

在OnNavigatedTo方法中添加async关键字,并添加await Task.Delay(10);在Frame.Navigate()调用之前。或者,您可以在Dispatcher中执行Frame.Navigate()。

1)使用延迟

protected override async void OnNavigatedTo(NavigationEventArgs e)
{
    await Task.Delay(10);
    Frame.Navigate(typeof (LoginView));
}

2)使用分派器
protected override async void OnNavigatedTo(NavigationEventArgs e)
{
    Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
    {
        Frame.Navigate(typeof(LoginView));
    });
}

10-04 15:36