■ AddFlow 클래스를 사용해 다이어그램을 생성한다. (링크 늘리기)
▶ MainForm.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
using System.Drawing; using System.Windows.Forms; using Lassalle.Flow; namespace TestProject { /// <summary> /// 메인 폼 /// </summary> public partial class MainForm : Form { //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor ////////////////////////////////////////////////////////////////////////////////////////// Public #region 생성자 - MainForm() /// <summary> /// 생성자 /// </summary> public MainForm() { InitializeComponent(); CreateDiagram(this.addFlow); } #endregion //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Private #region 다이어그램 생성하기 - CreateDiagram(addFlow) /// <summary> /// 다이어그램 생성하기 /// </summary> /// <param name="addFlow">AddFlow</param> private void CreateDiagram(AddFlow addFlow) { Node defaultNode = new Node(0, 0, 0, 0, null, addFlow); Link defaultLink = new Link(null, null, null, addFlow); Caption defaultCaption = new Caption(0, 0, 0, 0, null, null, addFlow); // 노드들을 위한 디폴트 속성 값들을 설정한다. defaultNode.FillColor = Color.LightYellow; defaultNode.ShadowStyle = ShadowStyle.RightBottom; // 링크들을 위한 디폴트 속성 값들을 설정한다. defaultLink.DrawColor = Color.Blue; defaultLink.BackMode = BackMode.Opaque; // 캡션들을 위한 디폴트 속성 값들을 설정한다. defaultCaption.TextColor = Color.Blue; defaultCaption.DrawColor = Color.Transparent; defaultCaption.Font = new Font("Calibri", 14); // 그림자를 갖는 3개의 노랑색 노드들을 생성한다. // 두번째 노드는 사각형이고 // 세번째 노드는 Document 도형 스타일을 갖는다. Node node1 = new Node(50 , 70 , 80 , 80, "첫번째 노드", defaultNode); Node node2 = new Node(280, 180, 100, 80, "두번째 노드", defaultNode); Node node3 = new Node(50 , 230, 80 , 80, "세번째 노드", defaultNode); node2.ShapeFamily = ShapeFamily.Rectangle; node3.ShapeFamily = ShapeFamily.Rectangle; node3.GraphicsPath = PredefinedGeometry.GetNodePath(NodeShapeStyle.Document, ShapeOrientation.Degree0); // 3개의 링크들을 생성한다. // 각 링크는 파랑색이고 BackMode 속성은 Opaque로 설정한다. // 두번째 링크는 베지어 스타일을 갖고, 텍스트 색상은 빨강색이고, 목적지 화살표 각도는 30도 이다. // 세번째 링크는 HVH 스타일이다. Link link1 = new Link(node1, node2, "링크 1", defaultLink); Link link2 = new Link(node2, node2, "링크 2", defaultLink); Link link3 = new Link(node2, node3, "링크 3", defaultLink); link2.LineStyle = LineStyle.Bezier; link2.TextColor = Color.Red; link2.ArrowDst = PredefinedGeometry.GetLinkArrowStylePath(LinkArrowStyle.Arrow, 10, 14); link3.LineStyle = LineStyle.Orthogonal; // 1개의 캡션을 생성한다. Caption caption = new Caption(200, 30, 220, 30, "링크들 늘리기", null, defaultCaption); // 다이어그램에 노드들과 링크들 및 캡션을 추가한다. addFlow.AddNode(node1); addFlow.AddNode(node2); addFlow.AddNode(node3); addFlow.AddLink(link1); addFlow.AddLink(link2); addFlow.AddLink(link3); addFlow.AddCaption(caption); // 첫번째 링크에 2개의 포인트들을 추가한다. link1.AddPoint(new PointF(90 , 200)); link1.AddPoint(new PointF(220, 60 )); // 재귀적 링크를 늘린다. link2.SetPoint(new PointF(280, 70), 1); link2.SetPoint(new PointF(420, 70), 2); } #endregion } } |