asp.Net   发布时间:2022-04-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了WF4 – 在asp.net中显示工作流图像,并突出显示活动大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要在asp.net网页中显示文档审批工作流任务的当前状态,并突出显示特定的活动。

我看过Visual工作流跟踪器示例(在wf& wcf示例中),但是我有两个问题,

>我必须在asp.net中呈现工作流,而不是WPF应用程序。
>我不需要显示工作流运行的当前状态,需要突出显示的所有活动都是需要用户输入的活动。例如“等待部门领导批准”等

如果我可以通过活动ID“创建书签并等待恢复书签”突出显示特定活动后,将工作流程XAML转换为JPG,则可以进行此工作。

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

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

解决方法

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

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

@H_117_19@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,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

大佬总结

以上是大佬教程为你收集整理的WF4 – 在asp.net中显示工作流图像,并突出显示活动全部内容,希望文章能够帮你解决WF4 – 在asp.net中显示工作流图像,并突出显示活动所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。