MindFusion.Diagramming for WinForms是一个能帮助你创建工作流和进程图表的.NET控件;数据库实体关系图表;组织图表;对象层次和关系图表;图表和树。它是基于对象-图表框,表格和箭头类型,将其归类分派给其他并结合成复杂的结构。该控件提供超过预先定义的50多种图表框,如自定义设计样式和对图表框着色等。
MindFusion.Diagramming for WinForms最新试用版
Q:我正在使用NodeListView允许用户将ShapeNodes拖到DiagramView上,但是,NodeCreating事件似乎并未触发。
A:这引发了拖放事件,您可以像这样从DragOver处理程序检查节点类型-
void diagramView_DragOver(object sender, DragEventArgs e){e.Effect = DragDropEffects.Copy;var draggedNode = e.Data.GetData(typeof(DraggedNode)) as DraggedNode;if (draggedNode != null && draggedNode.Node is TableNode)e.Effect = DragDropEffects.None;}
Q:是否可以在ContainerNode的标题栏中添加自定义控件/strong>
A:如果您使用派生类,则可以遵循ContainerNode用于显示其折叠图标的相同方法-
class TestWidget : MindFusion.Diagramming.Manipulators.Manipulator{public TestWidget(DiagramItem item, RectangleF bounds): base(item){this.bounds = bounds;}public override bool HitTest(PointF point){return bounds.Contains(point);}public override void Draw(IGraphics graphics){graphics.DrawRectangle(Pens.Blue, bounds);}public override void OnClick(PointF point){MessageBox.Show("click");}public override bool SupportClipping(){return false;}public override void AddToRepaintRect(ref RectangleF rect){}RectangleF bounds;}class TestNode: ContainerNode{public TestNode(Diagram diagram): base(diagram){AddManipulator(new TestWidget(this, new RectangleF(2, 2, 4, 4)));}}
否则,您可以使用AttachTo方法将一些辅助ControlNode或ShapeNode对象附加到容器,并处理其click事件以对其进行修改。
Q:鼠标悬停在容器标题的一小部分而不是整个容器上时,如何添加工具提示吗/p>
A:如果point在区域内,请尝试从DiagramNode.GetToolTip(point)覆盖返回,否则返回基本结果。
=====================================================
问答持续更新中>>>
MindFusion.Diagramming for WinForms现已加入在线订购,点击此处查看价格~
想要购买MindFusion.Diagramming for WinForms正版授权的朋友欢迎咨询在线客服哦~

标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!