首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止撤销gojs图片

防止撤销gojs图片
EN

Stack Overflow用户
提问于 2019-10-16 01:35:41
回答 1查看 152关注 0票数 0

在我的应用程序中,用户可以通过单击当前触发diagram.commandHandler.undo的按钮来使用撤销,将图像呈现到gojs画布中。但是,当我使用undo时,图像会消失。我想阻止用户在上面使用撤销。到目前为止,我尝试的是使用initiallayoutconpleted等,但所有这些都是针对节点的,这不符合我的用例。目前,我是这样在画布上初始化图像的:

代码语言:javascript
复制
  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"); ```
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-16 02:54:40

想必你之前打电话给startTransaction,了,是吗?

问题是,该部分的添加由UndoManager记录,因此是撤消或重做的。我认为您希望暂时将Diagram.skipsUndoManager设置为true,添加背景图片,然后将其设置回原来的位置。

另一种做法是:

代码语言:javascript
复制
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.然后就不需要交易了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58404582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档