Benutzer mit den meisten Antworten
Drucken in WPF

Frage
-
Hallo Zusammen,
ich würde gerne das Drucken einer View ermöglichen.
Die View ist als UserControl eingebunden. Ist das überhaupt möglich eine komplette View oder Teilbereiche (z.B. den Inhalt einzelner StackPanels) an den Drucker zu senden? Oder muss man die gewünschten Elemente speziell einbinden?
Wo kann man über das Drucken mal schlau machen?
Gibt es hierzu ein schönes Tutorial?
Gruß
Peter
Wer grob fahrlässige Rechtschreibfehler findet, darf diese behalten ;0)
- Bearbeitet Peter Sypek Samstag, 24. September 2011 15:44
Antworten
-
Hallo Peter,prinzipiell ist das Drucken eines von "Visual" abgeleiteten Objekts kinderleicht (wie immer, wenn man denn nur weiß, wie es geht). Du instanziierst einen PrintDialog - in dem der Anwender dann auch die Druckerauswahl und -einstellungen macht - und rufst dessen Methode "PrintVisual" auf. Der erste Parameter ist Dein UserObject, der zweite ein Text, unter dem der Druckjob in der Druckerwarteschlange angezeigt wird.
PrintDialog pd = new PrintDialog(); if (pd.ShowDialog() == true) { pd.PrintVisual(this.MyControl, "Spoolereintrag"); }
Du kannst eventuell benötigte Einstellungen/Vorgaben über das PrintTicket des Dialogs machen.Ansonsten gibt es noch den Weg, mit den WPF-Dokumenten (Flow- und FixedDocument) zu arbeiten. Einen Einstiegspunkt bietet die VS-Hilfe unter "Printing Overview". Ob das ein guter Einstieg ist, kann ich nicht sagen, da ich z. Zt. mit der obigen Methode auskomme und daher nicht weitergeforscht habe.GrußJürgen- Als Antwort markiert Peter Sypek Dienstag, 27. September 2011 08:52
Alle Antworten
-
Hallo Peter,prinzipiell ist das Drucken eines von "Visual" abgeleiteten Objekts kinderleicht (wie immer, wenn man denn nur weiß, wie es geht). Du instanziierst einen PrintDialog - in dem der Anwender dann auch die Druckerauswahl und -einstellungen macht - und rufst dessen Methode "PrintVisual" auf. Der erste Parameter ist Dein UserObject, der zweite ein Text, unter dem der Druckjob in der Druckerwarteschlange angezeigt wird.
PrintDialog pd = new PrintDialog(); if (pd.ShowDialog() == true) { pd.PrintVisual(this.MyControl, "Spoolereintrag"); }
Du kannst eventuell benötigte Einstellungen/Vorgaben über das PrintTicket des Dialogs machen.Ansonsten gibt es noch den Weg, mit den WPF-Dokumenten (Flow- und FixedDocument) zu arbeiten. Einen Einstiegspunkt bietet die VS-Hilfe unter "Printing Overview". Ob das ein guter Einstieg ist, kann ich nicht sagen, da ich z. Zt. mit der obigen Methode auskomme und daher nicht weitergeforscht habe.GrußJürgen- Als Antwort markiert Peter Sypek Dienstag, 27. September 2011 08:52
-
Das mit dem Fixed und Flow Document sagt mir meinBuch zum Thema WPF auch.
Falls die Methode mit dem Visual nicht reicht, werd ich mich da wohl mal ranarbeiten müssen.
Soviel wie ich bisher mitbekommen habe läuft alles was mit Drucken zu tun hat über xps.
Gruß
Peter
Wer grob fahrlässige Rechtschreibfehler findet, darf diese behalten ;0)