在我的应用程序中,用户可以通过单击当前触发diagram.commandHandler.undo的按钮来使用撤销,将图像呈现到gojs画布中。但是,当我使用undo时,图像会消失。我想阻止用户在上面使用撤销。到目前为止,我尝试的是使用initiallayoutconpleted等,但所有这些都是针对节点的,这不符合我的用例。目前,我是这样在画布上初始化图像的:
diagram.add(GO(go.Part,
layerName: "Background",
selectable: false,
pickable:false,
}, GO(go.Picture, imagePath, {
width: 400,
height: 400,
imageStretch: go.GraphObject.Uniform,
imageAlignment: go.Spot.TopLeft
})));
diagram.model.commitTransaction("add bg"); ```发布于 2019-10-16 02:54:40
想必你之前打电话给startTransaction,了,是吗?
问题是,该部分的添加由UndoManager记录,因此是撤消或重做的。我认为您希望暂时将Diagram.skipsUndoManager设置为true,添加背景图片,然后将其设置回原来的位置。
另一种做法是:
myDiagram.commit(d => {
d.add(...);
}, null);https://gojs.net/latest/api/symbols/Diagram.html#commit
还有第三种可能性:将该部分添加到“网格”层( Layer.isTemporary为真),因此该层中的任何更改都不会被UndoManager.记录https://gojs.net/latest/api/symbols/Layer.html#isTemporary
因此,只需将layerName改为"Grid“即可。我认为您还需要设置它的Part.position.然后就不需要交易了。
https://stackoverflow.com/questions/58404582
复制相似问题