分享一种适用于MicrosoftWPF的功能丰富的图表控件(上)

电子说

1.2w人已加入

描述

Version3.0同时支持.NETFramework 和.NETCore。

综合图表

GoXam旨在通过照顾常见的图表需求来节省您的项目数周的开发时间。功能包括内置的节点和链接关系、数据绑定、子图和组、可折叠和可展开的树、概览、布局和分层。

  编辑器   编辑器

折叠和展开树

大型图的一种常用技术是允许用户控制该树部分的可见性。展开和折叠子树内置在 GoXam中,如下例所示,其中一个按钮绑定到IsExpandedTree 属性:

  编辑器  

图层

图形对象可以放置在图层中以定义它们的Z 顺序。默认情况下,DiagramPanel有9层,包括用于背景、默认和前景节点和链接的层,以及用于输入工具和装饰(如选择句柄)的层。

调色板控制

许多图表应用程序使用调色板来支持将新元素拖放到视图中。GoXam 还提供了一种特殊的图表,称为调色板。它以矩形网格状排列显示许多节点。您可以使用与常规图表不同的DataTemplate,以便为每个项目提供更小或更简单的外观。

  编辑器  

概览控制

有时图表太大,您只能以合理的缩放级别看到其中的一部分。对于此类应用程序,我们提供了概览控件。它显示另一个图表显示的整个模型的缩略图,并显示该图表的视口。用户可以在概览中单击或拖动以滚动其他图表的视口。

  编辑器  

子图/组

许多图形类型,例如工作流或业务流程建模符号(BPMN),使用分组技术来组织图表。GoXam 中支持组,包括支持定义层次结构的数据绑定和定义组外观的数据模板。

  编辑器  

其他功能

剪切/复制/粘贴/撤消/重做

默认情况下启用标准剪贴板操作,但可能会在不需要的应用程序中禁用。为了支持无限制和可自定义的撤消和重做,UndoManager跟踪图表模型的更改。更改按事务在逻辑上分组在一起。

缩放/滚动/平移/选择

GoXam支持滚动和放大图表。您可以通过设置 DiagramPanel 属性以编程方式滚动和放大或缩小。用户可以使用滚动条或 PanningTool 滚动,用户可以使用Control-Mouse-Wheel 放大或缩小。GoXam 控件支持选择,它们可以轻松地将数据绑定到当前选定的节点。您可以通过提供自定义数据模板来自定义选择句柄和工具句柄(例如,用于调整大小)。支持对图表中的任何文本进行就地文本编辑。只需单击为文本编辑启用的任何文本。

预定义的形状和箭头

GoXam预定义了超过 195种常用形状,用于常用节点定义。节点图形示例显示了所有这些形状。

箭头示例显示了65 种预定义的箭头设计。

XML保存/恢复

GoXam不需要任何特定的格式或介质来存储图表。在许多情况下,应用程序已经拥有自己的数据库模式或二进制文件格式或其他任何东西,因此良好的控制不应强加任何存储要求。

但是,如果您不介意使用XML 作为文档格式,并且如果您没有任何必须遵守的特定XML 模式,并且如果您使用我们预定义的模型数据类,我们确实可以轻松保存和以 XML 格式加载模型数据。(组织结构图编辑器、状态图、逻辑电路和流程图示例都演示了XML 保存/恢复的使用。)

自动布局

GoXam带有用于自动节点和链接定位的预定义布局。GoXam具有许多类型图表的布局,包括圆形布局、树和力导向布局以及分层有向图等。

  编辑器

在GoXam 图中,您可以通过在其根可视元素上设置Node.Location 附加属性来定位节点,或通过以编程方式设置 Node.Location属性。用户可以通过拖动来重新定位节点。

然而,GoXam也有自动定位节点的方法。DiagramLayout 类提供GridLayout、TreeLayout、ForceDirectedLayout和LayeredDigraphLayout。通过设置 Diagram.Layout属性,可以将布局与整个图表相关联。布局也可以通过设置 Group.Layout附加属性与Group 相关联。(您可以在此处的分组示例中查看在单个图表中运行的不同布局示例。)

LayoutManager管理图表中的布局,包括决定什么条件需要布局再次运行。LayoutManager还支持动画,当节点移动到新位置时,它允许平滑过渡。

CircularLayout

CircularLayout将节点排列成圆形或椭圆形。

  编辑器

GridLayout

GridLayout在Palette 控件中使用,但您可以在任何图表中使用它。

  编辑器

ForceDirectedLayout

ForceDirectedLayout使用类似于物理力的力来推动和拉动节点。连杆被视为具有特定长度和刚度的弹簧。每个节点都具有排斥其他节点的电荷。

  编辑器

TreeLayout

TreeLayout有利于布置树形结构图。它非常快,可以处理许多节点。提供多个选项,让您在有限的空间内获得所需的外观和清晰度。

   编辑器

LayeredDigraphLayout

当图的节点可以自然地组织成层但结构不是树状时,您可以使用 LayeredDigraphLayout。这种布局可以处理进入一个节点的多个链接以及创建循环的链接。

  编辑器



审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分