【发布时间】:2011-06-01 14:52:26
【问题描述】:
我想在打印期间显示 BusyIndicator。如果我在 BeginPrint 事件中打开我的 BusyIndicator 并在 EndPrint 事件中将其关闭,它永远不会出现(BusyIndicator.DisplayAfter 设置为 0)。我认为这是因为实际打印是在不同的线程上进行的。因此,如果我在实际调用 PrintDocument.Print 之前打开它,BusyIndicator 会显示,但这当然不是我想要的(当用户在实际打印之前选择他/她的打印机时会出现 BusyIndicator)。
我尝试创建我的用户控件的属性,该属性实现为 BusyIndicator.IsBusy 绑定到的 DependencyProperty,并在 BeginPrint 和 EndPrint 事件中设置该属性的值 true/false。我通过在打印之外将其设置为 true 来测试与此属性的绑定,并且它可以工作。但是,当我在打印事件中设置该属性时,什么也没有。
我也不能在 BackgroundWorker 的 BeginPrint 或 EndPrint 事件中做任何工作。
我怎么能打开我的 BusyIndicator?
【问题讨论】:
-
当您看到“BeginX”时,您可以放心地假定它是一个异步进程。您可以添加自己的等待句柄并查找指示完成的事件。尚未这样做是silverlight,但期待看到最终解决方案。
-
不确定这是否适合您,但我很好奇并试了一下。我使用 Button.Click 事件启动一些打印。在那种情况下,我打开了 BusyIndicator,然后在 PrintDocument.EndPrint 中将其关闭。
-
在这里查看同样的问题stackoverflow.com/questions/3843499/…
标签: silverlight silverlight-4.0 c#-4.0