WF4工作流设计器模型对Undo和Redo的支持

WF4的设计器模型中提供了UndoEngine类,提供设计时的Undo(撤销)和Redo(重做)功能。我们可以调用工作设计器的服务来启用Undo和Redo功能。主要涉及到下面几个类:

下面一个简单例子说明

1.WPF的Xaml部分如下:

<Window x:Class="CaryUndo.MainWindow"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:sadt="clr-namespace:System.Activities.Presentation.Toolbox;assembly=System.Activities.Presentation"
         xmlns:sys="clr-namespace:System;assembly=mscorlib"
         Title="MainWindow" Height="350" Width="525">
     <Window.CommandBindings>
         <CommandBinding Command="Undo" Executed="UndoHandle" />
         <CommandBinding Command="Redo" Executed="RedoHandle" />
     </Window.CommandBindings>
     <Window.Resources>
         <sys:String x:Key="AssemblyName">System.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35</sys:String>
     </Window.Resources>
     <Grid>
         <Grid.ColumnDefinitions>
             <ColumnDefinition Width="2*"/>
             <ColumnDefinition Width="7*"/>
             <ColumnDefinition Width="3*"/>
         </Grid.ColumnDefinitions>
         <Border Grid.Column="0">
             <sadt:ToolboxControl>
                 <sadt:ToolboxCategory CategoryName="Basic">
                     <sadt:ToolboxItemWrapper AssemblyName="{StaticResource AssemblyName}" >
                         <sadt:ToolboxItemWrapper.ToolName>
                             System.Activities.Statements.Sequence
                         </sadt:ToolboxItemWrapper.ToolName>
                     </sadt:ToolboxItemWrapper>
                     <sadt:ToolboxItemWrapper  AssemblyName="{StaticResource AssemblyName}">
                         <sadt:ToolboxItemWrapper.ToolName>
                             System.Activities.Statements.WriteLine
                         </sadt:ToolboxItemWrapper.ToolName>
                     </sadt:ToolboxItemWrapper>
                     <sadt:ToolboxItemWrapper  AssemblyName="{StaticResource AssemblyName}">
                         <sadt:ToolboxItemWrapper.ToolName>
                             System.Activities.Statements.Pick
                         </sadt:ToolboxItemWrapper.ToolName>
                     </sadt:ToolboxItemWrapper>
                 </sadt:ToolboxCategory>
             </sadt:ToolboxControl>
         </Border>
         <Border Grid.Column="1" Name="DesignerBorder"></Border>
         <Border Grid.Column="2" Name="PropertyBorder"/>
         <Button Content="Undo" Command="Undo" Height="23" HorizontalAlignment="Left" Margin="9,179,0,0" Name="button1" VerticalAlignment="Top" Width="75" />
         <Button Content="Redo" Command="Redo" Height="23" HorizontalAlignment="Left" Margin="9,218,0,0" Name="button2" VerticalAlignment="Top" Width="75" />
     </Grid>
</Window>

时间: 2024-08-30 19:56:32

WF4工作流设计器模型对Undo和Redo的支持的相关文章

WF4.0工作流设计器

在WF3.0里面,就能将工作流设计器宿主到你自己的应用程序中,但是除了做 一些基本的操作,做一些复杂的操作将非常的难. 在WF4.0中应用移植性变得更好,只需200行代码就能创建一个功能完全也非 常有用的工作流设计器.

使用silverlight构建一个工作流设计器(十八)-持久化数据到数据库

使用silverlight构建一个工作流设计器(十八)-持久化数据到数据库-服务器段功能实现 17.3 服务器端代码实现 服务器端的功能是将数据保存到数据库,以及从数据库中取出xml描述文件返回给客户端.本文使用LINQ to SqClasses的方法对数据库进行操作.如下图所示,增加一个linq的类 然后在左边的数据库链接管理器中,增加一个数据库链接,如下图所示:

使用silverlight构建一个工作流设计器(十七)-持久化数据到数据库

使用silverlight构建一个工作流设计器(十七)-持久化数据到数据库-设计webservices接口 在开始之间,先说下程序增加的一个小功能,就是给容器增加网格线的功能,使得容器看上去类似下面的样子 当然可以有两种方法来实现,一种就是使用背景图片,但本文一贯的原色就是少用图片,多用silverlight的画图功能来实现,这些网格都可以使用xaml中的Line对象来实现.为此我们需要动态设定一个Canvas,然后把这些动态生成的Line对象添加到Canvas中,最后再把Canvas添加到容器

使用silverlight构建一个工作流设计器(十三)(动态生成流程图片下载_上)

首先庆祝一下源代码在codeplex上下载量超过1000 另外本演示程序放在微软免费的silverlight host上面,您也可以申请免费的空间. 地址在http://silverlight.live.com/ 源代码下载:http://www.shareidea.net/opensource.htm 在线演示:http://www.shareidea.net/workflow.htm 视频教程: http://www.shareidea.net/video/sharedesigner/sha

net 工作流引擎 b s-.NET B/S架构下的工作流设计器引擎

问题描述 .NET B/S架构下的工作流设计器引擎 有没有人使用.NET技术,开发过B/S架构下的工作流设计器.我们之前使用C/S模式开发了一套工作流设计器,使用的是工作流+wpf.

Web页面上工作流设计器(silverlight/Flex/Javascript/java Workflow Designer)

 最近需要做一个web页面的工作流设计器,调研了一下,具体内容汇总如下,可做大家的使用选型参考. Silverlight的Workflow Designer ShareDesigner http://sharedesigner.codeplex.com/  开源流程设计器 Workflow11.Designer 基本的功能  http://www.cnblogs.com/eleven11/archive/2010/08/10/Workflow11_Designer.html http://sil

使用silverlight构建一个工作流设计器(十六)-持久化数据到数据库—数据库结构

16.1 数据结构 目前的流程信息没有保存到任何一个可持久化的环境中,根据网友建议,增加存储工作流xml文件的功能.这个功能使用数据库来实现,您也可以有更多的持久化方式. 根据工作流引擎的实现不同,有些引擎只需要xml文件配置就可以了,有些引擎需要建立数据库的模型.在本文中,假设工作流引擎是跟数据库相关的. 整个持久化流程是这样的: 从使用webservices从服务器下载相应的流程xml描述(或者新建一个流程) 在客户端使用流程设计器进行流程设计或者修改,此时任何修改都在本地完成 在用户点击保

使用silverlight构建一个工作流设计器(三)

本文配套源码 最新版本在线演示:http://219.153.66.61/wf 新功能调查:系统到这里已经具备一个设计器的雏形了,当然还有很多需要完善的功能,如果您在这方面有经验,请提出您的宝贵意见,也可以留下您想要实现的功能,在后续版本中,我们将考虑您的意见,非常感谢:) 本文继续前文的内容,主要讲述与导入xm,导出xm,xml存储有关的一些内容.包含以下部分: 设计一个流程图的xml描述文件 将流程图导出为xm 根据xml文件呈现流程图 在完成以上内容后,进一步深入思考,既然可以将流程的当前

wf框架编程-设计器部分:工作流设计器

1 Net设计器基础框架 .net设计器基础框架所在的命名空间是System.ComponentModel.Design,而wf.asp.net.win from这三种设计器架构都是建立在.Net本身提供的基础框架之上. wf设计器框架所在的命名空间是System.Workflow.ComponentModel.Design,相关类都在这个NameSpace里面.在研究wf设计器之前,我们先看看Winform设计器.对Winform设计器的研究,对WF设计器的理解很有帮助. 1.1 Winfor