【发布时间】:2015-09-13 07:39:56
【问题描述】:
对于我们的应用程序,我们需要在导航期间显示忙碌指示符,因为某些控件需要时间来加载。通常对于长时间运行的操作,我会创建一个单独的任务,并会在 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
【问题讨论】:
标签: wpf task ui-thread busyindicator