对于我们的应用程序,我们需要在导航期间显示繁忙指示器,因为某些控件需要时间来加载。通常,对于长时间运行的操作,我将创建一个单独的任务并在 UI 线程中触发繁忙指示器,但在这种情况下我不能这样做。
一旦繁忙指示器开始旋转,它就会受到同样在 ui 线程中执行的 Frame.Source 或 Frame.Navigate 的干扰。忙把指标藏了起来。
下面是我用于导航的一段代码。这是作为单独的任务执行的。
public virtual void NavigateTo(string pageKey, object parameter)
{
Frame frame = null;
Action actionToExecuteOnUIContext = () =>
{
frame = GetDescendantFromName(Application.Current.MainWindow, "ContentFrame") as Frame;
if (frame != null)
{
frame.LoadCompleted -= frame_LoadCompleted;
frame.LoadCompleted += frame_LoadCompleted;
frame.Source = _pagesByKey[pageKey];
frame.DataContext = parameter;
}
};
Application.Current.Dispatcher.BeginInvoke(actionToExecuteOnUIContext, DispatcherPriority.Normal);
}
}
任何解决此问题的方法或替代方法
WPF & RadBusyIndicator & .Net 4.5