Closed papibabi closed 5 years ago
lz解决了吗
重新注册一个节点继承 flow-node, 然后 label 逐字绘制。还是比较麻烦的,好像没有通用的解决办法, canvas 不支持自动换行
我个人的理解,首先节点label太长就不太合理,考虑缩短文字或用省略号表示,然后我又去读了一下g的text源码,里面有个textArr属性是用来设置多行文本的,你在设置labelStyle的时候,传这个属性进去试试
labelStyle: {
textArr:['aaaa','bbbbb','cccc']
}
希望能帮到你
在文本里面加个 '\n' 自动就换行了
如果你用的是g6-editor 提供的默认节点,可以自定义一个节点,继承这个默认的节点,然后重写getLabel()方法。如果你用的是自定义节点,就把getLabel() 这个方法重新定义一下。把超出的部分用...表示,换行的话,目前没有想到。g6-editor 默认的getLabel(t){ return t.getModel().label; }
哈哈是的,重新注册了节点,但是换行要用到 measureText 方法然后逐字绘制,而不是直接绘制一整个字符串。好像没有什么捷径~canvas 没有换行的属性可以用 @IMlixingwang
我把 detailPanel 的label 编辑框换成 textarea 然后手动换行可以; 不手动换行就会溢出。。