【问题标题】:WF4 - Display workflow image in asp.net and highlight an activityWF4 - 在 asp.net 中显示工作流图像并突出显示活动
【发布时间】:2010-05-08 08:12:31
【问题描述】:

我需要在 asp.net 网页中显示文档审批工作流任务的当前状态,并突出显示特定活动。

我已经看到了可视化工作流跟踪器示例(在 wf 和 wcf 示例中),但我有两个问题,

  1. 我必须在 asp.net 中而不是在 WPF 应用程序中呈现工作流。

  2. 我不需要在工作流运行时显示当前状态,所有需要突出显示的活动都是需要用户输入的活动。例如“等待部门负责人批准”等。

如果我可以在通过“创建书签并等待恢复书签”的活动 ID 突出显示特定活动后将工作流 XAML 转换为 JPG,那么它就可以完成工作。

检查附件中需要在 asp.net 页面上呈现的工作流图像:

Workflow with current activity highlighted (that is waiting to be resumed)

【问题讨论】:

标签: asp.net xaml workflow workflow-foundation-4


【解决方案1】:

首先将工作流加载到设计器中。

您应该已经知道要突出显示的“活动”。工作流程中有选择服务,您可以使用它来选择适当的模型项目。此示例显示单个选择,但有多个。

ModelService modelService = wd.Context.Services.GetService<ModelService>();
        IEnumerable<ModelItem> activityCollection = modelService.Find(modelService.Root, typeof(Activity));
        Selection.Select(wd.Context, activityCollection.ElementAt(5));

在工作流设计器上有一个按钮可以将工作流复制为图像或类似的东西。此链接将向您展示如何从 WorkflowDesigner.View 获取 jpg。 http://social.msdn.microsoft.com/Forums/en-US/wfprerelease/thread/b781c8df-608a-485a-80e3-a795d800f08d

        const double DPI = 96.0;

        Rect size = VisualTreeHelper.GetDescendantBounds(view);
        int imageWidth = (int)size.Width;
        int imageHeight = (int)size.Height;

        RenderTargetBitmap renderBitmap = new RenderTargetBitmap(imageWidth, imageHeight, DPI, DPI, PixelFormats.Pbgra32);
        renderBitmap.Render(view);
        BitmapFrame bf = BitmapFrame.Create(renderBitmap);

        using (FileStream fs = new FileStream(@"c:\test.jpg", FileMode.Create))
        {
            JpegBitmapEncoder encoder = new JpegBitmapEncoder();
            encoder.Frames.Add(BitmapFrame.Create(bf));
            encoder.Save(fs);
            fs.Close();
        }

作为补充说明,您应该查看 Kushals 示例: http://blogs.msdn.com/b/kushals/archive/2009/12/22/visualworkflowtracking-aka-workflowsimulator.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-29
    • 2016-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    • 2012-03-31
    • 1970-01-01
    相关资源
    最近更新 更多