Tạo sơ đồ C#

Lưu đồ là một công cụ trực quan mạnh mẽ để thể hiện các quy trình và quy trình làm việc. Trong bài đăng trên blog này, chúng ta sẽ khám phá cách tạo sơ đồ trong C#. Cho dù bạn đang xây dựng một ứng dụng phức tạp hay chỉ cần trực quan hóa một quy trình đơn giản, việc tạo sơ đồ lưu đồ có thể hữu ích khi bạn cần chia sẻ thông tin với những đối tượng có liên quan.

Tại sao tạo sơ đồ?

Việc lập sơ đồ rất hữu ích vì nhiều lý do. Ví dụ:

Tài liệu tự động: Tự động tạo sơ đồ dựa trên mã hoặc tệp cấu hình, đảm bảo tài liệu được cập nhật.

Sơ đồ động: Tạo sơ đồ động, dựa trên dữ liệu có thể thay đổi theo thời gian thực dựa trên thông tin đầu vào của người dùng hoặc các biến khác.

Tích hợp: Nhúng sơ đồ vào trong ứng dụng của bạn, cho phép người dùng tương tác và thao tác chúng trực tiếp trong phần mềm.

Trình tạo sơ đồ - Cài đặt API C#

Để làm theo hướng dẫn này, bạn cần định cấu hình Visual Studio IDE và chuẩn bị môi trường bằng cách cài đặt Conholdate.Total for .NET bằng lệnh cài đặt NuGet bên dưới:

PM> NuGet\Install-Package Conholdate.Total

Tạo sơ đồ trong C#

Bạn có thể tìm hiểu cách tạo sơ đồ trong C# bằng cách thêm một số hình dạng và trình kết nối:

  • Bắt đầu bằng cách tạo lược đồ cho sơ đồ lưu đồ.
  • Tải bản gốc để thêm hình bằng lớp Sơ đồ.
  • Thêm hình dạng và kết nối theo lược đồ.
  • Sắp xếp bố cục cho sơ đồ luồng.
  • Cuối cùng, lưu sơ đồ dưới dạng tệp VSDX bằng phương pháp Lưu.

Mã mẫu bên dưới cho biết cách tạo sơ đồ trong C#:

namespace CreateFlowchart
{
    class Program
    {
        static void Main(string[] args)
        {
            //lược đồ cho sơ đồ được tạo
            Input diagramObject = new Input()
            {
                InputRectangles = new List<InputRectangle>() {
                        new InputRectangle() {
                            Name = "A",
                            Text = "Manager"
                        },
                        new InputRectangle() {
                            Name = "B",
                            Text = "Team Leader"
                        },
                        new InputRectangle() {
                            Name = "C",
                            Text = "Team Member"
                        },
                        new InputRectangle() {
                            Name = "D",
                            Text = "Team Member"
                        },
                        new InputRectangle() {
                            Name = "E",
                            Text = "Team Member"
                        }
                    },
                InputConnectors = new List<InputConnector>() {
                        new InputConnector() {
                            OriginShapeName = "A",
                            DestinationShapeName = "B"
                        },
                        new InputConnector() {
                            OriginShapeName = "B",
                            DestinationShapeName = "C"
                        },
                        new InputConnector() {
                            OriginShapeName = "B",
                            DestinationShapeName = "D"
                        },
                        new InputConnector() {
                            OriginShapeName = "B",
                            DestinationShapeName = "E"
                        }
                    }
            };

            Diagram diagram = new Diagram("BasicShapes.vss");
            Page page = diagram.Pages[0];

            Dictionary<string, long> shapeNames = new Dictionary<string, long>();

            //Thêm hình dạng và trình kết nối từ lược đồ
            foreach (var rectangle in diagramObject.InputRectangles)
            {
                Shape shape = new Shape();
                var shapeId = diagram.AddShape(shape, @"Rectangle", 0);
                shapeNames.Add(rectangle.Name, shapeId);
                shape = page.Shapes.GetShape(shapeId);
                shape.Text.Value.Add(new Txt(rectangle.Text));
            }


            foreach (var connector in diagramObject.InputConnectors)
            {
                var connectorId = diagram.AddShape(new Shape(), "Dynamic connector", 0);
                page.ConnectShapesViaConnector(shapeNames[connector.OriginShapeName],
                                                ConnectionPointPlace.Right,
                                                shapeNames[connector.DestinationShapeName],
                                                ConnectionPointPlace.Left,
                                                connectorId);
            }


            LayoutOptions layoutOptions = new LayoutOptions()
            {
                LayoutStyle = LayoutStyle.FlowChart,
                Direction = LayoutDirection.LeftToRight,
                SpaceShapes = 5,
                EnlargePage = true
            };

            diagram.Layout(layoutOptions);

            page.PageSheet.PrintProps.PrintPageOrientation.Value = PrintPageOrientationValue.Landscape;

            DiagramSaveOptions saveOptions = new DiagramSaveOptions()
            {
                SaveFormat = SaveFileFormat.Vsdx,
                AutoFitPageToDrawingContent = true
            };

            diagram.Save("output.vsdx", saveOptions);
        }
    }

    public class Input
    {
        public System.Collections.Generic.List<InputRectangle> InputRectangles { get; set; }
        public System.Collections.Generic.List<InputConnector> InputConnectors { get; set; }
    }

    public class InputRectangle
    {
        public string Name { get; set; }
        public string Text { get; set; }
    }

    public class InputConnector
    {
        public string OriginShapeName { get; set; }
        public string DestinationShapeName { get; set; }
    }
}

Dự án demo

Bạn có thể tải xuống dự án mẫu đang hoạt động để có bản trình diễn nhanh về tính năng này. Hơn nữa, nó có thể được nâng cao hơn nữa bằng cách sửa đổi hình dạng, kết nối, đầu nối, v.v. để thử nghiệm các trường hợp sử dụng khác nhau.

Giấy phép đánh giá miễn phí

Bạn có thể nhận được giấy phép tạm thời miễn phí để kiểm tra hết công suất của API.

Tổng hợp

Tạo sơ đồ theo chương trình trong C# là một cách mạnh mẽ để tự động hóa việc trực quan hóa các quy trình và quy trình làm việc. Với sự trợ giúp của các lớp được bảo hiểm và lệnh gọi phương thức, bạn có thể nhanh chóng tạo các sơ đồ động và có tính tương tác. Chúng tôi hy vọng hướng dẫn này đã cung cấp cho bạn nền tảng vững chắc để bắt đầu tạo sơ đồ của riêng bạn trong C#. Trong trường hợp có bất kỳ sự mơ hồ nào, vui lòng liên hệ với chúng tôi tại diễn đàn.

Câu hỏi thường gặp

Tôi có thể tạo các sơ đồ phức tạp hơn với các hình dạng và đầu nối bổ sung không?

Có, bạn có thể tạo bao nhiêu hình dạng và đường kết nối nếu cần để thể hiện bất kỳ quy trình nào.

Tôi có thể xuất sơ đồ sang hình ảnh hoặc PDF không?

Có, nó hỗ trợ xuất sơ đồ sang nhiều định dạng khác nhau, bao gồm hình ảnh và PDF.

Tôi có thể thêm hình dạng tùy chỉnh vào sơ đồ không?

Có, bạn có thể tạo hình dạng tùy chỉnh. Điều này cho phép bạn tạo các hình dạng phù hợp với nhu cầu cụ thể của bạn.

Xem thêm