mxGraph - 如果 mxCell 超过默认大小,如何自动将其调整为内容宽度
mxGraph - How to automatically resize mxCell to content width if it exceeds the default size
我如何创建一个 mxCell,设置其 mxGeometry 的最小宽度,但如果它的宽度高于默认宽度,它会调整到其值字段的 html 元素的宽度?
现在我有这个代码
var style = 'rounded=0;whiteSpace=wrap;html=1;autosize=1;resizable=0;';
var cell = new mxCell(value, new mxGeometry(0, 0, width, height), style);
但是当我创建这个 mxCell 时,它的大小总是 "width" 和 "height",即使它包含的 html 元素(一个 h3 标题)超过了 mxRectangle。我该如何解决这个问题?
编辑:谢谢,它使用 graph.updateCellSize() 有效。因为我只想在必须高于默认值时才更改大小,所以我编写了这段代码
this.graph.updateCellSize(cell, true);
var geom = cell.getGeometry();
geom.width = geom.width > width ? geom.width : width;
改值两次,效率低下。我找到了另一种使用 getPreferredSizeForCell
的方法
var preferred = this.graph.getPreferredSizeForCell(cell);
var current = cell.getGeometry();
current.width = preferred.width > width ? preferred.width : width;
current.height = preferred.height > height ? preferred.height : height;
试试 graph.updateCellSize(cell, true);
我如何创建一个 mxCell,设置其 mxGeometry 的最小宽度,但如果它的宽度高于默认宽度,它会调整到其值字段的 html 元素的宽度?
现在我有这个代码
var style = 'rounded=0;whiteSpace=wrap;html=1;autosize=1;resizable=0;';
var cell = new mxCell(value, new mxGeometry(0, 0, width, height), style);
但是当我创建这个 mxCell 时,它的大小总是 "width" 和 "height",即使它包含的 html 元素(一个 h3 标题)超过了 mxRectangle。我该如何解决这个问题?
编辑:谢谢,它使用 graph.updateCellSize() 有效。因为我只想在必须高于默认值时才更改大小,所以我编写了这段代码
this.graph.updateCellSize(cell, true);
var geom = cell.getGeometry();
geom.width = geom.width > width ? geom.width : width;
改值两次,效率低下。我找到了另一种使用 getPreferredSizeForCell
的方法var preferred = this.graph.getPreferredSizeForCell(cell);
var current = cell.getGeometry();
current.width = preferred.width > width ? preferred.width : width;
current.height = preferred.height > height ? preferred.height : height;
试试 graph.updateCellSize(cell, true);