【问题标题】:Print .NET WF4 workflow from rehosted designer从重新托管的设计器打印 .NET WF4 工作流
【发布时间】:2016-07-06 14:39:56
【问题描述】:

我想从 .NET 4.5 的重新托管的工作流设计器中打印出漂亮的工作流渲染。打印 WPF 控件的标准技术不起作用 - 可以看到工作流设计器本身的环境,但工作流呈现保持空白。

在以下示例中,我从另一个工作流设计器中获取工作流定义,但我也需要能够从 XAML 字符串打印(因此仅依赖显示的工作流设计器是行不通的 - 我需要一个独立的)。

我尝试了以下代码:

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");
}

【问题讨论】:

    标签: c# .net wpf workflow-foundation-4


    【解决方案1】:

    您必须让设计器实际呈现活动。有关原因和方法的详细信息,请参阅this MSDN blog。博客条目是关于保存为图像,但同样的概念也适用。先渲染再打印。

    【讨论】:

    • 谢谢;我希望有另一种方法而不是依赖计时器,但看来我必须走那条路。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-02
    • 1970-01-01
    • 2010-12-12
    相关资源
    最近更新 更多