返回
揭秘mxGraph隐藏Sizer奥秘:自定义图元缩放点显示
前端
2023-05-13 00:29:23
自定义 mxGraph 中的 Sizer
在 mxGraph 中,Sizer 是图元上可缩放的拖拽点,用于调整图元的大小和形状。本文将深入探讨如何自定义 Sizer 的显示和隐藏,包括以下主题:
一、Sizer 概述
Sizer 是 mxGraph 中特殊元素,标记图元上的可缩放点。它们通常显示在图元的四周或任意位置,通过拖拽调整图元的大小和形状。
二、自定义 Sizer 显示隐藏
要自定义 Sizer 的显示或隐藏,需要修改 mxGraph 样式表:
- 查找图元样式: 找到您要自定义的图元样式,例如 ".vertex"。
- 添加 Sizer 样式: 在样式表中添加 ".vertexSizer" 代码段,定义 Sizer 的形状、颜色和粗细。
- 显示或隐藏 Sizer: 通过将 "display: none;" 添加到 ".vertexSizer" 中来隐藏 Sizer,或通过添加 Sizer 值来显示它,例如 ".vertexSizer { display: block; }"。
三、实例分析
var graph = new mxGraph();
var model = graph.getModel();
var cell = model.getCell("1");
// 自定义 Sizer 样式
var style = graph.getCellStyle(cell);
style[mxConstants.STYLE_SHAPE] = mxConstants.SHAPE_RECTANGLE;
style[mxConstants.STYLE_FILLCOLOR] = "#ffffff";
style[mxConstants.STYLE_STROKECOLOR] = "#000000";
// 自定义 Sizer 显示或隐藏
if (showSizer) {
style[mxConstants.STYLE_SIZERS] = mxConstants.SIZER_HANDLE_CREATE + ";" +
mxConstants.SIZER_HANDLE_CONNECT + ";" +
mxConstants.SIZER_HANDLE_FIXED + ";" +
mxConstants.SIZER_HANDLE_LABEL_CREATE;
} else {
style[mxConstants.STYLE_SIZERS] = "";
}
// 应用样式
graph.setCellStyle(cell, style);
结论
通过自定义 mxGraph 样式表,您可以根据需要控制 Sizer 的显示和隐藏。这种灵活性允许您创建个性化的图元,满足特定需求。
常见问题解答
-
如何禁用所有 Sizer?
将 ".vertexSizer { display: none; }" 添加到 mxGraph 样式表中。 -
我可以改变 Sizer 的形状和颜色吗?
是的,在 ".vertexSizer" 代码段中指定 "shape" 和 "fillColor" 参数。 -
Sizer 可以定位在特定位置吗?
是的,您可以通过修改 Sizer 的 "position" 和 "width" 样式来对其进行定位。 -
如何检测 Sizer 何时被拖拽?
使用 mxGraph 的 "mouseDown" 和 "mouseMove" 事件监听器。 -
Sizer 的实际作用是什么?
Sizer 允许用户以交互方式调整图元的大小和形状,提高了绘图的便利性和准确性。