📄 wxdwfstatemachinedesigner.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.ComponentModel.Design;
using System.ComponentModel.Design.Serialization;
using System.Workflow.ComponentModel;
using System.Workflow.ComponentModel.Compiler;
using System.Workflow.Activities;
using System.Workflow.ComponentModel.Design;
using System.Runtime.InteropServices;
using System.Collections;
using System.Collections.ObjectModel;
using System.IO;
using System.Workflow.ComponentModel.Serialization;
using System.Xml;
using System.CodeDom.Compiler;
using System.Workflow.Runtime;
using System.Reflection;
using System.Threading;
namespace wxwinter.wf.Design
{
public class wxdWFStateMachineDesigner : UserControl, IDisposable, IServiceProvider
{
private System.ComponentModel.IContainer components = null;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.Panel panel2;
private System.Windows.Forms.Panel panel3;
private System.Windows.Forms.PropertyGrid propertyGrid;
private System.Windows.Forms.Panel panel4;
private System.Windows.Forms.Splitter splitter2;
private System.Windows.Forms.Panel panel5;
private System.Windows.Forms.Splitter splitter1;
private void InitializeComponent()
{
this.panel1 = new System.Windows.Forms.Panel();
this.panel2 = new System.Windows.Forms.Panel();
this.panel3 = new System.Windows.Forms.Panel();
this.propertyGrid = new System.Windows.Forms.PropertyGrid();
this.panel4 = new System.Windows.Forms.Panel();
this.splitter2 = new System.Windows.Forms.Splitter();
this.panel5 = new System.Windows.Forms.Panel();
this.splitter1 = new System.Windows.Forms.Splitter();
this.panel3.SuspendLayout();
this.panel4.SuspendLayout();
this.panel5.SuspendLayout();
this.SuspendLayout();
//
// panel1
//
this.panel1.AutoScroll = true;
this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
this.panel1.Location = new System.Drawing.Point(0, 0);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(266, 262);
this.panel1.TabIndex = 3;
//
// panel2
//
this.panel2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel2.Location = new System.Drawing.Point(0, 0);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(422, 543);
this.panel2.TabIndex = 4;
//
// panel3
//
this.panel3.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.panel3.Controls.Add(this.propertyGrid);
this.panel3.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel3.Location = new System.Drawing.Point(0, 262);
this.panel3.Name = "panel3";
this.panel3.Size = new System.Drawing.Size(266, 281);
this.panel3.TabIndex = 6;
//
// propertyGrid
//
this.propertyGrid.Dock = System.Windows.Forms.DockStyle.Fill;
this.propertyGrid.Location = new System.Drawing.Point(0, 0);
this.propertyGrid.Name = "propertyGrid";
this.propertyGrid.Size = new System.Drawing.Size(262, 277);
this.propertyGrid.TabIndex = 0;
//
// panel4
//
this.panel4.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.panel4.Controls.Add(this.splitter1);
this.panel4.Controls.Add(this.panel3);
this.panel4.Controls.Add(this.panel1);
this.panel4.Dock = System.Windows.Forms.DockStyle.Left;
this.panel4.Location = new System.Drawing.Point(0, 0);
this.panel4.Name = "panel4";
this.panel4.Size = new System.Drawing.Size(270, 547);
this.panel4.TabIndex = 7;
//
// splitter2
//
this.splitter2.Location = new System.Drawing.Point(270, 0);
this.splitter2.Name = "splitter2";
this.splitter2.Size = new System.Drawing.Size(3, 547);
this.splitter2.TabIndex = 8;
this.splitter2.TabStop = false;
//
// panel5
//
this.panel5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.panel5.Controls.Add(this.panel2);
this.panel5.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel5.Location = new System.Drawing.Point(273, 0);
this.panel5.Name = "panel5";
this.panel5.Size = new System.Drawing.Size(426, 547);
this.panel5.TabIndex = 9;
//
// splitter1
//
this.splitter1.Dock = System.Windows.Forms.DockStyle.Top;
this.splitter1.Location = new System.Drawing.Point(0, 262);
this.splitter1.Name = "splitter1";
this.splitter1.Size = new System.Drawing.Size(266, 3);
this.splitter1.TabIndex = 7;
this.splitter1.TabStop = false;
//
// WorkflowDesignerControl
//
this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.Controls.Add(this.panel5);
this.Controls.Add(this.splitter2);
this.Controls.Add(this.panel4);
this.Name = "wxwinterWFD";
this.Size = new System.Drawing.Size(699, 547);
this.panel3.ResumeLayout(false);
this.panel4.ResumeLayout(false);
this.panel5.ResumeLayout(false);
this.ResumeLayout(false);
}
string activityToolItemFile = "";
private WorkflowView workflowView; //工作查看器
private DesignSurface designSurface;
private wxdWFLoader loader;
System.Workflow.Activities.StateMachineWorkflowActivity workflow;
public wxdWFStateMachineDesigner()
{
this.activityToolItemFile = System.AppDomain.CurrentDomain.BaseDirectory + "ActivityTooIteml.txt";
InitializeComponent();
wxdActivityTool toolbox = new wxdActivityTool(this, activityToolItemFile);
panel1.Controls.Add(toolbox);
toolbox.Dock = DockStyle.Fill;
toolbox.BackColor = BackColor;
toolbox.Font = WorkflowTheme.CurrentTheme.AmbientTheme.Font;
WorkflowTheme.CurrentTheme.ReadOnly = false;
WorkflowTheme.CurrentTheme.AmbientTheme.ShowConfigErrors = false;
WorkflowTheme.CurrentTheme.ReadOnly = true;
this.propertyGrid.BackColor = BackColor;
this.propertyGrid.Font = WorkflowTheme.CurrentTheme.AmbientTheme.Font;
}
/// <summary>
/// Xoml文件名
/// </summary>
public string XomlFile
{
get
{
return this.loader.XomlFile;
}
set
{
this.loader.XomlFile = value;
}
}
/// <summary>
/// Xoml文件名字串
/// </summary>
public string Xoml
{
get
{
string xoml = string.Empty;
if (this.loader != null)
{
try
{
this.loader.Flush();
xoml = this.loader.Xoml;
}
catch
{
}
}
return xoml;
}
set
{
try
{
if (!String.IsNullOrEmpty(value))
LoadWorkflow(value);
}
catch
{
}
}
}
/// <summary>
/// 工作流的名称
/// </summary>
public string WorkflowName
{
get
{
return this.workflow == null ? string.Empty : this.workflow.Name;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -