彩票走势图

流程图控件软件开发:FlowChart.NET自定义复合节点(一)

原创|使用教程|编辑:郝浩|2013-06-08 14:33:38.000|阅读 493 次

概述:业务流程图控件FlowChart.NET提供了用于创建或编辑图表的直观的用户交互模型。在本文中将会给出一部分内容关于创建一个自定义的CompositeNode 类,用于显示在组织中的独立信息,如名称、 说明和图像。节点将会通过各种公开的属性进行自定义。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

    业务流程图控件FlowChart.NET提供了用于创建或编辑图表的直观的用户交互模型。在前面的教程中,探讨了如何创建复合节点和组件。在本文中将会给出一部分内容关于创建一个自定义的CompositeNode 类,用于显示在组织中的独立信息,如名称、 说明和图像。节点将会通过各种公开的属性进行自定义。

1、声明的自定义类

    创建一个从CompositeNode 类派生的自定义复合节点,需要先进行声明:

C#

public class OrgChartNode : CompositeNode
{
}

Visual Basic

Public Class OrgChartNode
    Inherits CompositeNode

End Class

    可应用在不同的方案中创建一个自定义节点,比如,如果你想要定义在XML中的节点的内容,还想要声明对于不同组件的事件处理程序,或是你想要应用自定义组件安排逻辑或是自定义呈现。

2、指定组件的内容

    添加一个单独的构造函数到新创建的节点类,将会使用到下面的内容:

C#

...
public OrgChartNode(Diagram diagram) : base(diagram)
{
    string content = @"
      <SimplePanel>

        <Shape Name=""Shape"" Shape=""Rectangle"" />

          <Border Padding=""2"">
            <GridPanel>
              <GridPanel.Columns>
              <GridColumn Width=""30"" />
              <GridColumn />
            </GridPanel.Columns>
            <GridPanel.Rows>
              <GridRow />
            </GridPanel.Rows>

            <Image Name=""Image"" ImageAlign=""Fit"" />

            <StackPanel Orientation=""Vertical"" GridColumn=""1"">
              <Text Name=""Title"" Font=""Arial, 12pt, style=Bold"" TextAlignment=""Near"" />
              <Text Name=""FullName"" TextColor=""Blue"" TextAlignment=""Near"" />
              <Text Name=""Text"" Font=""Arial, 8pt"" TextAlignment=""Near"" />
            </StackPanel>
          </GridPanel>
        </Border>

      </SimplePanel>";

    Components.Add(XmlLoader.Load(content, null, null));
}
...

Visual Basic

...
Public Sub New(ByVal diagram As Diagram)

    MyBase.new(diagram)

    Dim content As String = _
        "<SimplePanel>" & _
        "" & _
        "  <Shape Name=""Shape"" Shape=""Rectangle"" />" & _
        "" & _
        "  <Border Padding=""2"">" & _
        "    <GridPanel>" & _
        "      <GridPanel.Columns>" & _
        "        <GridColumn Width=""30"" />" & _
        "        <GridColumn />" & _
        "      </GridPanel.Columns>" & _
        "      <GridPanel.Rows>" & _
        "        <GridRow />" & _
        "      </GridPanel.Rows>" & _
        "" & _
        "      <Image Name=""Image"" ImageAlign=""Fit"" />" & _
        "" & _
        "      <StackPanel Orientation=""Vertical"" GridColumn=""1"">" & _
        "        <Text Name=""Title"" Font=""Arial, 12pt, style=Bold"" TextAlignment=""Near"" />" & _
        "        <Text Name=""FullName"" TextColor=""Blue"" TextAlignment=""Near"" />" & _
        "        <Text Name=""Text"" Font=""Arial, 8pt"" TextAlignment=""Near"" />" & _
        "      </StackPanel>" & _
        "    </GridPanel>" & _
        "  </Border>" & _
        "" & _
        "</SimplePanel>"

    Components.Add(XmlLoader.Load(content, Nothing, Nothing))

End Sub
...

3、声明组件字段

现在节点的内容已经定义好和导入了,将添加几个字段到指定到感兴趣的不同组件的类上,添加下面的字段到类的最后:

C#

private ShapeComponent shape;
private ImageComponent image;
private TextComponent title;
private TextComponent fullName;
private TextComponent text;

 

Visual Basic

Private _shape As ShapeComponent
Private _image As ImageComponent
Private _title As TextComponent
Private _fullName As TextComponent
Private _text As TextComponent

&nbsp; &nbsp; 要初始化引用相应组件的字段,可以使用CompositeNode 类的FindComponent方法。在组件太能极爱到节点的组件连接之后,这个方法将会成功的运行。在组件连接到复合节点之后,在函数中添加下面的代码:

C#

...
Components.Add(XmlLoader.Load(content, null, null));

shape = FindComponent("Shape") as ShapeComponent;
image = FindComponent("Image") as ImageComponent;
title = FindComponent("Title") as TextComponent;
fullName = FindComponent("FullName") as TextComponent;
text = FindComponent("Text") as TextComponent;
...

Visual Basic

...
Components.Add(XmlLoader.Load(content, Nothing, Nothing))

_shape = CType(FindComponent("Shape"), ShapeComponent)
_image = CType(FindComponent("Image"), ImageComponent)
_title = CType(FindComponent("Title"), TextComponent)
_fullName = CType(FindComponent("FullName"), TextComponent)
_text = CType(FindComponent("Text"), TextComponent)
...

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:慧都控件

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP