MxGraph从入门到精通之3:设置图形样式


通过上一节 MxGraph从入门到精通之2:HelloWorld程序解析,我们已经知道通过MxGraph绘制图形的核心步骤,绘制出来的图形默认的样式如下:
在这里插入图片描述
我们可以修改默认样式来修改所有图形的默认样式,也可以在创建节点的时候通过参数来创建指定样式的节点或者调用graph的setCellStyle来更新指定节点的样式。

修改默认样式

修改顶点(Vertex)的默认样式

let style = graph.stylesheet.getDefaultVertexStyle();  // 获取顶点的默认样式,得到一个对象
style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_ELLIPSE; // 将顶点的默认形状改为椭圆形

style对象中的各个属性指定了顶点的形状、颜色等默认样式,其中mxConstants.STYLE_SHAPE属性用于设置顶点的形状,mxConstants.SHAPE_ELLIPSE形状为椭圆形。 mxConstants是MxGraph预定义的一系列常量,其中一些常量就是用来定义样式的属性和值的,大部分都已经常用的和样式有关的常量可以参考本文最后的常用样式汇总。修改默认顶点样式后,上述的helloworld程序显示效果如下:

在这里插入图片描述

修改边(Edge)的默认样式

和顶点类似,可以通过以下方式修改边的默认样式:

let style = graph.stylesheet.getDefaultEdgeStyle();
style[mxConstants.STYLE_STROKECOLOR] = 'Green';

mxConstants.STYLE_STROKECOLOR表示边的颜色,上述代码表示将边的默认颜色修改成绿色。在MxGraph中,颜色的取值范围可以是HTML颜色名(如Red,Pink等)或十六进制码(如#0000ff)。常用HTML颜色名可参考:HTML Color Codes 。修改边的默认样式后,上述的helloworld程序显示效果如下:

在这里插入图片描述

设置节点样式

创建指定样式的节点

在上一节中helloworld示例程序插入顶点的方法可以传入第八个参数,来指定创建出来的顶点的样式,如下:

var v1 = graph.insertVertex(parent, null, 'Hello,', 20, 20, 80, 30, 'shape=cloud;fillColor=Coral');
var v2 = graph.insertVertex(parent, null, 'World!', 200, 150, 80, 30, 'shape=rhombus;fillColor=#00ff00' );

效果类似下图:
在这里插入图片描述

更新已有节点样式

setCellStyle可以更新一组节点的样式,如下:

graph.setCellStyle('shape=cloud;fillColor=Gray', [v1,v2])

v1,v2为我们上面创建的两个顶点,上述代码将v1,v2的样式都设置成了灰色以及云状,效果类似下图:

在这里插入图片描述

常用样式汇总

通过上述示例我们知道MxGraph图形的样式设置实际上是通过一个包含多个键值对的字符串或者通过style对象来指定的,字符串中的键/值和style对象中的属性/值是一一对应的。例如,shape=cloud 的作用类似于 style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_CLOUD,实际上mxConstants.STYLE_SHAPE常量的值就是shape, mxConstants.SHAPE_CLOUD的值就是cloud
上述示例演示了shape,fillColor等样式的效果,下面总结一下常用的样式类型及其取值范围,出于方便,下面有些地方使用了常量的形式,有些地方使用了字符串的形式,这些常量和字符串的对应关系可以参考:MxGraph全局常量

mxConstants.STYLE_SHAPE - 形状

mxConstants.STYLE_SHAPE用于指定MxGrape图形的形状,可取的值如下:

rectangle  ellipse doubleEllipse  rhombus line image arrow 
arrowConnector label cylinder swimlane connector actor triangle hexagon

各个形状的效果如下:
在这里插入图片描述

mxConstants.STYLE_FONTSTYLE - 字体样式

mxConstants.STYLE_FONTSTYLE用于设置字体的样式,可取的值为:

FONT_BOLD  // 粗体
FONT_ITALIC // 斜体
FONT_UNDERLINE // 下划线
FONT_STRIKETHROUGH // 中划线

样式效果如下:
在这里插入图片描述

mxConstants.STYLE_FILLCOLOR - 填充颜色

mxConstants.STYLE_FILLCOLOR指定图形的填充颜色,值可以是HTML颜色名(如Red,Pink等)或十六进制码(如#0000ff)。常用HTML颜色名可参考:HTML Color Codes

mxConstants.STYLE_STROKECOLOR - 画笔颜色

mxConstants.STYLE_STROKECOLOR指定了画笔的颜色。用于设置Edge和Vertex的外围边的颜色。

mxConstants.STYLE_FONTCOLOR - 字体颜色

mxConstants.STYLE_FONTCOLOR用于设置字体的颜色,style[mxConstants.STYLE_FONTCOLOR] = 'white'的效果如下:
在这里插入图片描述

mxConstants.STYLE_GRADIENTCOLOR - 渐变颜色

mxConstants.STYLE_GRADIENTCOLOR用于设置渐变颜色,style[mxConstants.STYLE_GRADIENTCOLOR] = 'white'的效果如下:

在这里插入图片描述

mxConstants.STYLE_SHADOW - 阴影效果

mxConstants.STYLE_SHADOW用于指定是否开启阴影效果,默认为false,style[mxConstants.STYLE_SHADOW] = true的效果如下:

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章