Wenn ich List&Label über einen Aufruf via .Print() aus einer WPF-Applikation aufrufe, wird das Fenster (egal ob Designer oder Preview) immer modal, also forciert im Vordergrund angezeigt.
Ich benötige aber eine Möglichkeit, mein aufrufendes Programm in dieser Zeit weiter zu bedienen. Ich habe versucht, L&L mithilfe von Task.Run zu starten, was aber zu AccessViolationExceptions führt.
Die Verwendung des WPF-Preview Controls ist auch keine Lösung, da dafür zuerst die vollständige Preview-Datei generiert werden muss, was bei mehreren hundert Reportseiten zu lange dauert.
Gibt es eine Möglichkeit, zumindest das Previewfenster nicht modal zu starten, sodass das aufrufende Programm weiterhin auf Input reagieren kann?
Die ListLabel-Komponente hat eine Eigenschaft ParentHandle. Wenn die ungleich IntPtr.Zero ist, wird das darin vermutete Fenster als Parent genommen. Vielleicht also einfach mal “1” übergeben und schauen was passiert? Solange der Druck nicht in einem eigenen Thread läuft wirst Du Dein Programm aber nicht nebenher bedienen können, zumindest wird das nicht schön aussehen.
Du könntest - unabhängig von der Frage - mal das EnhancedPreviewControl für WPF probieren, das kann die Vorschau auch während des Drucks anzeigen. Ist zwar nur ein gewrapptes WinForms-Control, aber vielleicht immer noch schöner als ein Fenster das aufplöppt.
tatsächlich eine AccessViolationException provozieren. Das Problem ist seit eben erledigt, Sie können sich gerne beim Support melden, wenn Sie eine angepasste Version benötigen.