我正在尝试更新包含标签和进度条的对话框。实际上在我的应用程序中,我正在取回我的数据,在进行备份时,我想显示进度条和显示当前正在备份的标签。我使用这个
来调用进度Application.Current.Dispatcher.Invoke(DispatcherPriority.ApplicationIdle, (Action)(() => { dialog.ProgressbarValue = "Backing up first item"; }));
这在Windows 8上运行正常,但在Windows 7上没有任何更新。
答案 0 :(得分:1)
您需要在文本框中应用“刷新”,以便在循环运行时显示所有文本。
您需要为ExtensionMethods提供一个包含刷新例程的静态类。
public static class ExtensionMethods
{
private static Action EmptyDelegate = delegate() { };
public static void Refresh(this UIElement uiElement)
{
uiElement.Dispatcher.Invoke(DispatcherPriority.Render, EmptyDelegate);
}
}
每次设置dialog.ProgressbarValue后,从代码中调用此extentionMethod 注意:你不需要在这个逻辑简单集对话框中有Dispatcher.ProgressbarValue代码并使用dialog.Refresh();
调用上面的刷新方法答案 1 :(得分:0)
设置DispatcherPriority.ApplicationIdle
实际修复了问题