【问题标题】:Busy indicator not showing up in wpf window [duplicate]wpf窗口中未显示忙碌指示器[重复]
【发布时间】:2011-09-11 21:13:55
【问题描述】:

可能重复:
wpf busyindicator not showing up

我正在尝试在这样的窗口中使用忙碌指示器:

   <extToolkit:BusyIndicator Width="160" Height="100"
               x:Name="busyIndicator" Visibility="Hidden"  />

当用户选择要导入的一些文件然后我对这些文件进行一些解析时,我试图调用它。

并设置这两个属性:

importProgressBar.busyIndicator.IsBusy = true;
importProgressBar.busyIndicator.Visibility = Visibility.Visible;

在窗口弹出之前。

每当文件解析完成时,我都会调用委托函数。在里面我用忙碌指示器调用窗口。

private void ShowIndicator(ProgressReport progressReport)
{
    window.Show();

    if (progressReport.OverallProgress.Completed)
    {
        window.Close();
    }
}

所以你可以在这个函数中看到我有完成的属性,完成后会自动关闭窗口,但窗口显示时没有忙碌指示符。

有人能指出为什么窗口中没有显示忙碌指示符吗?

【问题讨论】:

  • importProgressBar.busyIndi​​cator 中的 importProgressBar 是什么?我希望它是 Window 但从名称来看,它是一个进度条?
  • 那就有点头疼了。您是否有机会从不同于 UI 线程的线程调用 IsBusy=true ?您可能遇到了跨线程值操作错误,您可能需要在 UI 线程上调用 IsBusy 属性设置
  • 我现在没有创建任何单独的线程。我现在只是想在工作线程上做。
  • 我之前没有使用过这个控件,但是可能是 z-Order 阻止它显示(例如,它被其他控件遮挡)?也许您可以向我们展示您定义 importProgresbar 的 XAML 代码。

标签: c# wpf busyindicator


【解决方案1】:

使用:

Dispatcher.Invoke(DispatcherPriority.Background,
new Action(() => { Window.Show() }));

【讨论】:

  • 我也尝试在同一个窗口中添加忙碌指示符,但它没有显示出来。
猜你喜欢
  • 2014-10-04
  • 1970-01-01
  • 2017-05-25
  • 2018-06-18
  • 2015-11-28
  • 1970-01-01
  • 2018-11-04
  • 2011-05-20
  • 1970-01-01
相关资源
最近更新 更多