我正在使用導航框架編寫WPF應用程序。我試圖在等待頁面加載時顯示進度條。NavigationProgress不顯示進度條
像msdn page賽斯:
導航:當請求新的導航時發生。可用於 取消導航。
NavigationProgress:在下載過程中定期發生,以提供導航 進度信息。
導航:頁面被找到並下載時發生。
所以我有一個網格(navigationStatusGrid)與進度(navigationProgressBar),我有一個框架(mainFrame中)
這是我的事件處理程序:
private void mainFrame_NavigationProgress(object sender, NavigationProgressEventArgs e)
{
long progress = e.BytesRead * 100/e.MaxBytes;
Console.WriteLine("Navigating progress:" + progress + "%");
navigationProgressBar.Value = progress;
}
private void mainFrame_Navigating(object sender, NavigatingCancelEventArgs e)
{
Console.WriteLine("start navigating");
mainFrame.Visibility = Visibility.Hidden;
navigationStatusGrid.Visibility= Visibility.Visible;
}
private void mainFrame_Navigated(object sender, NavigationEventArgs e)
{
Console.WriteLine("end navigating");
mainFrame.Visibility = Visibility.Visible;
navigationStatusGrid.Visibility = Visibility.Hidden;
}
這是我的輸出:
start navigating
Navigating progress:4%
Navigating progress:8%
...
Navigating progress:87%
Navigating progress:92%
Navigating progress:96%
Navigating progress:99%
Navigating progress:100%
Navigating progress:100%
end navigating
所以你會說它的工作原理,但不知何故UI只會在頁面加載時得到更新。用戶界面甚至在加載時凍結...我無法立即看到進度欄,只是立即加載頁面。我該如何解決這個問題?
我什至不能得到進展事件被解僱,出於某種原因... –
mainFrame.Source = new Uri(「Views/Home.xaml」,UriKind.Relative); 其中「Views/Home.xaml」是我正在加載的頁面。爲我啓動事件,但我認爲存在一些線程問題。就像導航發生在與我的UI相同的線程或其他東西.. – VDP
@VDP你有沒有發現任何解決方案,以顯示加載第二頁 –