提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:莫成敏|2020-06-18 13:50:09.900|阅读 508 次
概述:有时,除了作为图主题的节点和链接之外,人们还想显示描述不同类型节点或链接的“图例”或“键”。也许有人还希望图中有大写字母的“标题”。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
GoJS是一款功能强大,快速且轻量级的流程图控件,可帮助你在JavaScript 和HTML5 Canvas程序中创建流程图,且极大地简化您的JavaScript / Canvas 程序。
有时,除了作为图主题的节点和链接之外,人们还想显示描述不同类型节点或链接的“图例”或“键”。也许有人还希望图中有大写字母的“标题”。
图外
首先,必须考虑标题或图例是否应包含在图中。您可以在图表之外的HTML中创建所需的任何内容。
请注意,HTML中的任何内容都不会自动与视口中显示的图表内容一起滚动和缩放。但是HTML元素可以位于图的DIV元素之前或之后。
未建模的零件
其次,您应该考虑在数据模型中保留标题还是图例。您需要在数据库中保存并加载该数据吗?
如果您不希望这些对象包含在应用程序的数据模型中,则可以将它们创建为简单的部件和图,然后将它们添加到显式定义的Part.locations的图中。
setupForLegend(diagram); // this creates a diagram just like the first example diagram.add( $(go.Part, { location: new go.Point(0, -40) }, $(go.TextBlock, "A Title", { font: "bold 24pt sans-serif", stroke: "green" })));
如果不指定的地点或位置的零件,如果你的Diagram.layout(如果有的话),不指定任何Part.location,那么有可能不是这些部件的实际位置,他们可能不会在任何地方出现图。
所有使用LayoutNetwork的预定义Layout,包括TreeLayout,都不能在简单的Part上运行,而只能在Node和Link上运行。如果已将节点添加到图中,则即使您显式设置了它的位置,它也将作为该图的常规树布局的一部分进行定位。另外,如果将其Part.isLayoutPositioned属性设置为false,它仍可能是Node 。
您会注意到标题在上图中是可选的,可移动的,可复制的和可删除的。您可能需要将Part.selectable之类的属性设置为false。
建模零件
另一方面,如果您确实想在模型中存储标题或图例,则可以使用常规机制进行存储。通常,您将使用节点类别和模板映射。如果您不希望用户操作这些对象,则需要将Part.selectable设置为false。您可能需要将Part.layerName设置为“Grid”,以便它始终位于其他所有内容的背景中。(“网格”图层中的所有零件都是自动不可选择的,因为该图层的Layer.allowSelect为false 。)
静态零件
第三,考虑您是否希望标题或图例随着用户滚动或缩放图表而移动或缩放。如果要在视口中将这样的装饰保持在相同位置,则最简单的方法是将其实现为与图的DIV元素叠加的HTML元素。
但是,如果您真的想使用GoJS Part来实现它,则可以通过实现一个“ViewportBoundsChanged” DiagramEvent侦听器来实现,该侦听器会不断将位置和比例重置为使其在用户滚动或缩放时不会移动的值。
setupForLegend(diagram); // this creates a diagram just like the first example diagram.add( $(go.Part, { layerName: "Grid", // must be in a Layer that is Layer.isTemporary, // to avoid being recorded by the UndoManager _viewPosition: new go.Point(0,0) // some position in the viewport, // not in document coordinates }, $(go.TextBlock, "A Title", { font: "bold 24pt sans-serif", stroke: "green" }))); // Whenever the Diagram.position or Diagram.scale change, // update the position of all simple Parts that have a _viewPosition property. diagram.addDiagramListener("ViewportBoundsChanged", function(e) { e.diagram.commit(function(dia) { // only iterates through simple Parts in the diagram, not Nodes or Links dia.parts.each(function(part) { // and only on those that have the "_viewPosition" property set to a Point if (part._viewPosition) { part.position = dia.transformViewToDoc(part._viewPosition); part.scale = 1/dia.scale; } }) }, "fix Parts"); });
请注意,当用户平移或滚动或缩放该图时,标题将以明显相同的有效尺寸保持在相同的视口位置。本示例使用了“网格” 图层(请参见图层介绍),该图层便于确保标题(或图例)保留在后台并且不参与选择或鼠标事件或UndoManager。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
文章转载自:本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢