Unsere Anwendung hat eine Reihe von Objekten auf einer Leinwand; Die Arbeitsfläche ist in einem Scroll-Viewer enthalten. Wir haben auch einen Schieberegler und einige Tasten, immer im oberen Bereich des Fensters zentriert.
Ich versuche, die Anwendung zu drucken, indem Sie ein Bitmap der App, aber ohne "Dekorationen" - Schieberegler, Schaltflächen oder Bildlaufleisten erfassen.SL 4 - Neuzeichnen des visuellen Baums erzwingen
Der Schieberegler und die Schaltflächen sind wie erwartet ausgeblendet, die Bildlaufleisten jedoch nicht.
Ich vermute, dass die Anwendung das Layout neu zeichnen muss, um die Bildlaufleisten auszublenden. Gibt es eine Möglichkeit, dies zu erreichen? Dies wird dadurch komplizierter gemacht, dass die Druckoperation in SL 4 durch eine UI-Geste initiiert werden muss; Es gibt keine Möglichkeit (AFAIK), programmatisch zu initiieren, daher muss dieses Redraw in einem der Ereignishandler PrintDocument geschehen.
Vielen Dank für alle Vorschläge ....
Können Sie den Xaml des zu druckenden Canvas anzeigen? Der Kommentar "Capturing a Bitmap" klingt ein wenig ab, können Sie sich vorstellen? – AnthonyWJones
Ich kann die XAML nicht wirklich anzeigen, da alle Objekte zur Laufzeit hinzugefügt werden und Vorlagen stark genutzt werden. Ich glaube, es sind die Vorlagen, die den Unfug verursachen; Nach dem Übergeben des Canvas an das PrintDocument wird der Baum nie neu gezeichnet (zumindest nicht vollständig). Was sich als Druckausgabe zeigt, sind viele fehlende oder unvollständig gezeichnete Objekte. Wir versuchen, eine Bitmap des Canvas zu erfassen, um das unvollständig gezeichnete Objektproblem zu umgehen. – Number8
Können Sie Ihren Code zum Erfassen von Bitmap posten? –