我已经找到了解决方案,并将详细回答这个问题,以获得其他人的好处:
为了完成我为调色板和图表拆分模板后的工作,每个模板都有自己的。
在图表上,我不希望节点可拖动,因此我设置了它的模板movable: false
,这样用户就不能再次拖动节点。
然后在创建图表时,您可以指定布局。所以使用 GridLayout 我做了以下事情:
var myDiagram = $(go.Diagram, "myDiagramDiv",
{
layout: $(go.GridLayout,
{
cellSize: new go.Size(200, 20),
wrappingColumn: 1
}),
"undoManager.isEnabled": true
});
我指定了一个列。
我还将 contentAlighment 属性设置为左上角:
myDiagram.startTransaction("");
myDiagram.contentAlignment = go.Spot.TopLeft;
myDiagram.commitTransaction("");
由于我不希望图表节点可拖动,因此我也设置了myDiagram.allowDragOut= false;
,以便无法将节点拖出图表。我发现如果我不这样做,即使一个节点在被选中时不可拖动,我也可以拖动选择
对于托盘,其布局概念相同:
var myPalette = $(go.Palette, "myPaletteDiv",
{
layout: $(go.GridLayout,
{
cellSize: new go.Size(200, 20),
wrappingColumn: 1
})
});
并且对于 contentAlighment 属性:
myPalette.startTransaction("");
myPalette.contentAlignment = go.Spot.TopLeft;
myPalette.commitTransaction("");
最终结果可以在这个修改后的 JS Fiddle 中查看:http: //jsfiddle.net/loangburger/v61bufs0/9/