在业务流程图控件FlowChart.NET中,通过使用样式和主题,用了一个一致的方法来定制流程图和项目的外观,而且在整个的流程图中的外观和感觉也会更加的流畅,想要改变外观和主题可以通过简单的替换当前的主题。
主题编辑器
主题编辑器为主题创建和修改提供了简单易于操作的的视觉环境,通过左边的属性网格提供了示例图,里面包含了项目各种类型、可用的内置图列表、项目样式等。在网格中的对于样式的任何修改将会立即映射到图上,如果这个主题应用到图表上,这个预览将会反应改变的效果。这个主题可以在任何时间通过保存菜单进行保存。现有的主题也可以打开和更改。
下图显示了主题编辑器的操作:
自定义样式:
下面的部分描述了如何启用自定义项目类的样式属性,要使用样式,需要创建一个自定义的样式类,可以通过从最接近的现有类型派生出来。比如,对于一个自定义ShapeNode,自定义样式需要从ShapeNodeStyle继承:
>>示例代码
对于在MyNode中的每个属性都需要定义样式,用一样的名称来定义属性,通过下面的模式键入MyNodeStyle类。比如要是MyNode包含一个输入笔刷的MyBrush属性,下面的代码定义了器相应的样式属性:
>>示例代码
现在,在定制MyNode类中,定义一个新属性,EffectiveMyBrush,它将返回MyBrush的实际值:
>>示例代码
记得对序列化注册的样式类,以及定制节点类:
C#
Diagram.RegisterClass(typeof(MyNode), "MyNode", 1);
Diagram.RegisterClass(typeof(MyNodeStyle), "MyNodeStyle", 1);
Visual Basic
Diagram.RegisterClass(GetType(MyNode), "MyNode", 1)
Diagram.RegisterClass(GetType(MyNodeStyle), "MyNodeStyle", 1)
现在你可以风格和主题自定义节点:
C#
Theme theme = new Theme();
MyNodeStyle myNodeStyle = new MyNodeStyle();
myNodeStyle.MyBrush = new SolidBrush(Color.PaleGoldenrod);
theme.RegisterStyle(typeof(MyNode), myNodeStyle);
diagram.Theme = theme;
Visual Basic
Dim theme As New Theme()
Dim myNodeStyle As New MyNodeStyle()
myNodeStyle.MyBrush = New SolidBrush(Color.PaleGoldenrod)
theme.RegisterStyle(GetType(MyNode), myNodeStyle)
diagram.Theme = theme