用WF流程控制WPF动画
用WF流程控制WPF动画
这次的主题是WF不只是审批
本文用一个小例子演示了在WF中定义动做步骤,用来控制WPF页面元素的动画
这个例子的目的是为了让大家从另一个角度了解WF的应用,不要一提到WF就想到审批平台,
WF是一个流程控制引擎,非常适合开发与流程控制相关的业务,如果你的业务逻辑比较复杂,而且业务逻辑需要经常修改,或者需求就要求提供一个可自定义业务逻辑的接口,比如:
- 审批,流程类业务系统
- 工控系统
- 与逻辑算法相关的人工智能系统,搜索引擎,数据处理分发系统
- 设备的运行状态UI展现
- 导航系统的摄影机路线与节奏控制
- 游戏中的剧情控制
- 游戏中人物的动件组合
那你可以考虑一下WF,至少可以借鉴一下WF的思路
本文例子下载: https://files.cnblogs.com/wxwinter/WFWPF.rar
先看一下例子的效果
流程
控制说明
程序说明
没什么好说的,下图中程序结构,全部代码没的超过50行,
有一点要说明一下,我为WorkflowRuntime添加了ManualWorkflowSchedulerService,这样就解决了跨线程访问UI的问题,关于ManualWorkflowSchedulerService我已有多篇文章做过详细说明,这里就不再说了
还用,用ManualWorkflowSchedulerService决了跨线程访问UI的问题是我偷懒的做法,如果真的要做图形动做引擎,不建议用这种方式
总结说明
可以将工作流设计成XOML字串格式的,并提供一个动做流程设计器
可以在动做流程设计器中用基本的[动做Activity]组合复杂的动做,也可以开发一些特殊动做的Activity,如[转体360度Activity],[眼睛蛇动做Activity]
最后:
本文不是要介绍图形动做引擎,本文想说明的是:
WF不只是审批,
流程逻辑控制与实体对象分离,逻辑控制可跟据需要进行后期设计,而不修改实体对象
这是一种设计思想,WF只是实现这种设计思想的一个开发包