Ich möchte das nette Workflow-Rendering von dem neu gehosteten Workflow-Designer von .NET 4.5 drucken. Die Standardtechnik zum Drucken von WPF-Steuerelementen funktioniert nicht - man kann die Umgebung des Workflow-Designers selbst sehen, aber das Workflow-Rendering bleibt leer.Drucken .NET WF4-Workflow von rehosted Designer
Ich nehme die Workflow-Definition aus einem anderen Workflow Designer im folgenden Beispiel, aber ich muss in der Lage sein, auch aus einem XAML-String zu drucken (es würde also nicht funktionieren, nur auf den angezeigten Workflow Designer zu vertrauen - ich brauche einen unabhängigen ein).
Ich habe versucht, den folgenden Code:
public void Print()
{
var printDlg = new PrintDialog();
if (printDlg.ShowDialog() != true) return;
_workflowDesigner.Flush();
var wd = new WorkflowDesigner();
DynamicActivity rootActivity;
using (var sr = new StringReader(_workflowDesigner.Text))
{
rootActivity = (DynamicActivity)ActivityXamlServices.Load(sr);
}
// wrap the activity in an ActivityBuilder because the designer expects it this way
var ab = new ActivityBuilder
{
Implementation = rootActivity.Implementation?.Invoke(),
Name = rootActivity.Name
};
wd.Load(ab);
var grid = new Grid();
grid.Children.Add(wd.View);
printDlg.PrintVisual(grid, "My Workflow");
}
Vielen Dank; Ich hoffte, dass es einen anderen Weg gab, anstatt sich auf den Timer zu verlassen, aber es scheint, dass ich diesen Weg hinunter gehen muss. –