mxGraph - 如何自动调整mxCell的大小以适应内容宽度,如果超出默认大小

4

如何创建一个mxCell,设置其mxGeometry的最小宽度,但如果其值域的HTML元素宽度大于默认宽度,则会调整为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;
1个回答

6
尝试使用 graph.updateCellSize(cell, true); 进行更新。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接