2009-04-28 3 views
2

Wir verwenden derzeit ein WinForms WebBrowser-Steuerelement in unserer App in einem WindowsFormsHost und Drucken durch Aufrufen von "WebBrowser.ShowPrintDialog()" Wir haben ein Problem damit, dass der Dialog nicht modal erscheint und das übergeordnete Fenster kann geschlossen werden Probleme verursachen, wenn ein Druck später versucht wird.Wie drucke ich über den wpf WebBrowser, der in .net 3.5 SP1 verfügbar ist?

Ich war bei dem neuen WPF WebBrowser-Steuerelement in der Hoffnung suche, dass sie dieses Problem behoben haben wird, wenn eine ähnliche Sache selbst zu tun, aber keine Möglichkeit, von ihm zu drucken finden ..

fand ich jemanden online sprechen dies zu tun:

 PrintDialog printDialog = new PrintDialog(); 
     printDialog.PrintDocument(((IDocumentPaginatorSource)webBrowser.Document).DocumentPaginator, "My App"); 

aber dies löst eine Ausnahme als das WebBrowser.Document nicht die IDocumentPaginatorSource Schnittstelle unterstützen.

Gibt es eine Möglichkeit, aus dem Wpf Webbrowser Steuerelement drucken?

dank

Antwort

4

ich dies mit, und es funktioniert:

mshtml.IHTMLDocument2 doc = webBrowser.Document as mshtml.IHTMLDocument2; 
    doc.execCommand("Print", true, null); 
+0

Dank, das funktioniert. Leider habe ich immer noch das Problem, wo ich mit der Benutzeroberfläche, die den Druck initiiert, interagieren (und sie abweisen) kann, obwohl der Druckdialog immer noch da ist. Hast du dieses Problem? Irgendwelche Ideen, wie man ein Ereignis erhält, wenn der Druckdialog geschlossen wird? – Trev

+0

Ich weiß es nicht, aber ich bin mir ziemlich sicher, dass der Druckdialog von nicht verwaltetem Code initiiert wird, so dass es möglicherweise mehr Arbeit erfordert, auf solche Ereignisse zu warten. – Botz3000

+0

Ich hasse euch beide, wo sind die Using-Anweisungen, wie instanziert ihr Webbrowser? –