如何在Silverlight 4中打印期间显示BusyIndi​​cator?

时间:2010-12-30 15:27:52

标签: silverlight silverlight-4.0 c#-4.0

我想在打印期间显示BusyIndi​​cator。如果我在BeginPrint事件中打开我的BusyIndi​​cator并在EndPrint事件中将其关闭,它将永远不会出现(BusyIndi​​cator.DisplayAfter设置为0)。我认为这是因为实际打印是在不同的线程上进行的。因此,如果我在实际调用PrintDocument.Print之前打开它,BusyIndi​​cator会显示,但当然这不是我想要的(当用户在实际打印之前选择他/她的打印机时出现BusyIndi​​cator)。

我尝试创建我的用户控件的属性,该属性实现为BusyIndi​​cator.IsBusy绑定的DependencyProperty,并在BeginPrint和EndPrint事件中设置该属性的值为true / false。我通过在打印之外将其设置为true来测试绑定到此属性,并且它可以工作。但是,当我在打印事件中设置该属性时,没有。

我无法在BackgroundWorker中的BeginPrint或EndPrint事件中完成任何工作。

我怎么能打开我的BusyIndi​​cator?

1 个答案:

答案 0 :(得分:0)

来自俄罗斯的黑客)))我这样做了:https://cid-99a78e3907425ccf.office.live.com/self.aspx/Sources/PrintDataGrid.RAR。我在这里打印我的DataGrid并显示busyindicator。