我想随机更改GOJS中活动节点的颜色。我有这个要求,用户将访问一个有两个GOJS图的页面,在这两个图中,节点中有一些相似之处。我想随机突出显示活动Node。
答案 0 :(得分:1)
如果你想“突出”一个或多个节点(或者实际上是任何一个部分),主要有两种方法可以将它们内置到GoJS中。
首先,图上有 Diagram.selection 集合和 Part.isSelected 属性和方法,用于选择零件。这在http://gojs.net/latest/intro/selection.html描述。
其次,图中有 Diagram.highlighteds 集合和 Part.isHighlighted 属性和方法,用于选择突出显示的部分。这在http://gojs.net/latest/intro/highlighting.html描述。
如果您希望用户对所选部件执行某些操作,请选择选择,例如查看并在单独的HTML面板中编辑其属性,或移动/复制/删除它们,或执行某些所需的操作他们。许多预定义的命令和工具会对选择进行更改或操作。
如果您只想通过使视觉上与众不同来选择突出显示,请选择突出显示。没有命令或工具更改或使用突出显示的集合。
选择和突出显示都提供定制的视觉变化,通常基于数据绑定。选择还提供显示装饰,与所选零件关联的单独零件,这是与每个零件一起使用的预定义行为。但也可以自定义,Introduction page on Selection演示。
因此,您只需要在每个图中找到要“突出显示”的节点,然后设置 Part.isSelected 或 Part.isHighlighted 。如果您使用选择,则不需要更改模板;或者您可以通过在“isSelected”或“isHighlighted”.ofObject()
上添加数据绑定来自定义视觉更改。有关示例,请参阅有关Highlighting Nodes and Links。
许多样本使用选择;您可能会发现Org Chart(静态)示例对于演示突出显示的典型用法非常有用: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