/ / Silverlight tlač busyprogress bar - silverlight, silverlight-4.0, potlač

Silverlight tlačová zbernica - silverlight, silverlight-4.0, tlač

I "m pomocou Silverlight 4 tlačiť, ale rád by som nejaký druh bar alebo zaneprázdnený indikátor.

Snažil som sa používať ukazovateľ priebehu, ale v skutočnosti to nefunguje.

  • ukazovateľ priebehu neindikuje postup, mám IsIndeterminate = True, ale pri spustení tlače sa neaktivuje (klikne sa dialógové okno Print (Tlač)).
  • Viditeľnosť ukazovateľa priebehu nie je nastavená nasprávny čas, v závislosti na tom, kde zadám kód na nastavenie viditeľnosti, ktorý sa zobrazí buď príliš skoro (pred kliknutím na tlač) alebo príliš neskoro (po určitej dobe tlače)

"Hádam, ale myslím, že dôvodom pre vyššie uvedené je, že keď sa zobrazí dialógové okno pre tlač, Silverlight podal kontrolu nad OS pre tlač (??).

Pokúsil som sa použiť príkaz odosielateľa, ale dostávam bezpečnostnú výnimku (dialóg je možné zobraziť len z užívateľského kliknutia).

Akékoľvek nápady, ako sa vysporiadať s niektorou z vyššie uvedených otázok?

Vďaka.

odpovede:

1 pre odpoveď č. 1

Vytvorte BusyIndicator vo vašom XAML, je to súčasť Silverlight Toolkit. A potom počas BeginPrint udalosti nastavte BusyIndicator IsBusy na True. Tiež počas EndPrint nastaviť IsBusy späť na 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 = "";
};