我想随机更改 GOJS 中活动节点的颜色。我有这个要求,用户将访问一个页面,其中有两个 GOJS 图,并且在这两个图中,节点中有一些相似之处。我想为此随机突出显示活动节点。
1 回答
如果您想“突出显示”一个或多个节点(或者实际上是任何部分),GoJS 中主要有两种方法可以做到这一点。
首先,Diagram 上有Diagram.selection集合和Part.isSelected属性和方法,用于选择部件。这在http://gojs.net/latest/intro/selection.html中有描述。
其次,Diagram 上有Diagram.highlighteds集合和Part.isHighlighted属性和方法,用于选择突出显示的部分。这在http://gojs.net/latest/intro/highlighting.html中有描述。
如果您希望用户对选定的部分执行某些操作,例如在单独的 HTML 面板中查看并可能编辑它们的属性,或者移动/复制/删除它们,或者对它们执行一些所需的操作,请选择选择。许多预定义的命令和工具会更改或对选择进行操作。
如果您只想通过使它们在视觉上与众不同来引起人们的注意,请选择突出显示。没有命令或工具更改或使用突出显示的集合。
选择和突出显示都提供定制的视觉变化,通常基于数据绑定。选择还提供显示装饰,与选定部件相关联的单独部件,这是适用于每个部件的预定义行为。但这也可以自定义,正如“选择”上的“介绍”页面所展示的那样。
因此,您只需在每个图表中找到要“突出显示”的节点,然后设置Part.isSelected或Part.isHighlighted。如果您使用选择,则无需更改模板;或者您可以通过在 "isSelected" 或 "isHighlighted" 上添加数据绑定来自定义视觉更改.ofObject()
。例如,请参阅有关突出显示节点和链接的部分。
大量样品使用选择;您可能会发现组织结构图(静态)示例对演示突出显示的典型用法很有用:http: //gojs.net/latest/samples/orgChartStatic.html。在文本框中输入一些要搜索的文本。
或者查看距离和路径示例: http: //gojs.net/latest/samples/distances.html。
哦,如果你真的想随机改变一些 Shape 或 TextBlock 或一些 GraphObject.background 的颜色,你可能会发现Brush.randomColor静态方法很有用:http: //gojs.net/latest/api/symbols/Brush.html #.randomColor