我正在使用Silverlight 4进行打印,但我想要某种进度条或忙碌指示器。
我尝试使用进度条,但它并没有真正起作用。我遇到的两个问题是:
我猜,但我认为上述原因是因为当显示打印对话框时,Silverlight已将控制权交给操作系统进行打印(??)。
我尝试使用调度程序调用但是我收到了一个安全异常(对话框只能通过用户点击显示)。
有关如何处理上述任何一个问题的任何想法?
感谢。
答案 0 :(得分:1)
在XAML中创建一个BusyIndicator,它是Silverlight Toolkit的一部分。然后在BeginPrint事件期间将BusyIndicator的IsBusy设置为True。同样在EndPrint期间,将IsBusy设置为false。
var docToPrint = new PrintDocument();
docToPrint.BeginPrint += (s, args) =>
{
MyBusyIndicator.IsBusy = true;
MyBusyIndicator.BusyContent = "Printing...";
};
docToPrint.PrintPage += (s, args) =>
{
args.PageVisual = this.MainCanvas;
};
docToPrint.EndPrint += (s, args) =>
{
MyBusyIndicator.IsBusy = false;
MyBusyIndicator.BusyContent = "";
};