流程图 被创建或设计为代表不同的工作流程。在某些情况下,您可能需要创建流程图来管理不同的情况。本文介绍如何在 C# 中以编程方式创建流程图。
安装 C# API 制作流程图
您可以使用 Aspose.Diagram for .NET API 制作流程图。它支持以 VSD、VSDX 和 其他支持的格式 创建或编辑 Visio 文件。您可以通过从 New Releases 部分下载 DLL 文件或使用 NuGet 包管理器和以下安装命令轻松安装 API:
PM> Install-Package Aspose.Diagram
在 C# 中以编程方式制作流程图
您可以根据您的要求制作不同流程的流程图。请按照以下步骤创建流程图:
以下代码片段详细说明了如何在 C# 中以编程方式制作流程图:
class Program
{
static void Main(string[] args)
{
// 要创建的图表的架构
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>();
//从架构中添加形状和连接器
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; }
}
下载示例项目
您可以下载 示例项目 以及输入和输出文件。
示例输出流程图预览
获取免费 API 许可证
您可以通过申请 免费临时许可证 来不受任何限制地评估 API 的所有功能。
结论
在本文中,您学习了如何使用 C# 以编程方式创建或制作流程图。您可以设计不同的形状,如决策、流程,以及不同的布局,如从左到右或从右到左等。此外,您可以访问 API 文档 以了解 API 的更多功能。请随时通过 论坛 与我们联系。