[英]Print .NET WF4 workflow from rehosted designer
我想从重新托管的.NET 4.5工作流设计器中打印出不错的工作流呈现。 打印WPF控件的标准技术不起作用-可以看到工作流设计器本身的周围环境,但是工作流呈现保持空白。
在下面的示例中,我从另一个Workflow Designer中获取了工作流定义,但是我也需要能够从XAML字符串进行打印(因此仅依靠显示的Workflow Designer不能工作-我需要一个独立的工作流设计器)。
我尝试了以下代码:
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");
}
您必须让设计人员实际渲染活动。 有关为什么和方式的详细信息,请参见此MSDN博客 。 博客条目与保存为图像有关,但适用相同的概念。 首先渲染它,然后打印它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.