TUM.CMS.VPLControl 开源项目教程

TUM.CMS.VPLControl 开源项目教程

TUM.CMS.VPLControl TUM.CMS.VplControl is a WPF based Visual Programming Control for .Net. 项目地址: https://gitcode.com/gh_mirrors/tu/TUM.CMS.VPLControl

1. 项目介绍

TUM.CMS.VPLControl 是一个基于 WPF 的 .NET 可视化编程控件。它允许非程序员通过简单的图形界面编写程序或流程,而无需了解其内部构建方式。该控件支持从零开始进行简单的可视化编程,包括赋值、布尔表达式、数学表达式和脚本。用户还可以轻松添加自定义节点以满足特定需求。该项目主要受到 Dynamo 和 Grasshopper 等知名可视化编程工具的启发。

2. 项目快速启动

2.1 下载和克隆项目

首先,下载或克隆 TUM.CMS.VPLControl 项目到本地:

git clone https://github.com/tumcms/TUM.CMS.VPLControl.git

2.2 运行测试项目

  1. 打开 Visual Studio 并加载项目。
  2. 运行测试项目以查看示例应用程序。

2.3 添加自定义节点

在测试项目中,找到 TemplateNode.cs 文件,这是一个自定义节点的模板。你可以根据需要修改和扩展该节点。

using System.Windows.Controls;
using TUM.CMS.VplControl.Nodes;

namespace TUM.CMS.VplControl.Test.Nodes
{
    public class TemplateNode : Node
    {
        public TemplateNode(VplControl hostCanvas) : base(hostCanvas)
        {
            AddInputPortToNode("Test", typeof(object));
            AddOutputPortToNode("Test", typeof(object));
            AddControlToNode(new Label { Content = "TemplateNode" });
        }

        public override void Calculate()
        {
            OutputPorts[0].Data = InputPorts[0].Data;
        }

        public override void SerializeNetwork(XmlWriter xmlWriter)
        {
            base.SerializeNetwork(xmlWriter);
            // 添加你的 XML 序列化方法
        }

        public override void DeserializeNetwork(XmlReader xmlReader)
        {
            base.DeserializeNetwork(xmlReader);
            // 添加你的 XML 反序列化方法
        }

        public override Node Clone()
        {
            return new TemplateNode(HostCanvas)
            {
                Top = Top,
                Left = Left
            };
        }
    }
}

2.4 在项目中使用 TUM.CMS.VplControl

  1. 创建一个新的 WPF 项目。
  2. 添加对 TUM.CMS.VplControl.dll 的引用。
  3. App.xaml 文件中添加资源字典:
<Application x:Class="KBEControlCenter2.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindow.xaml">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/TUM.CMS.VplControl.component/Themes/Generic.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
</Application>
  1. 在主窗口中添加 VplControl 元素:
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:VplControl="clr-namespace:TUM.CMS.VplControl;assembly=TUM.CMS.VplControl"
        x:Class="TUM.CMS.VplControl.Test.MainWindow"
        Title="MainWindow"
        WindowStartupLocation="CenterScreen"
        WindowState="Maximized">
    <Grid>
        <VplControl:VplControl Name="VplControl" />
    </Grid>
</Window>
  1. 将主控件/窗口的按键事件路由到 VplControl
KeyDown += VplControl.VplControl_KeyDown;
KeyUp += VplControl.VplControl_KeyUp;

3. 应用案例和最佳实践

3.1 自动化流程设计

TUM.CMS.VPLControl 可以用于设计自动化流程,例如数据处理、图像处理和业务流程自动化。通过可视化编程,用户可以快速构建复杂的流程,而无需编写大量代码。

3.2 教育培训

该控件非常适合用于教育培训,帮助学生理解编程概念。通过可视化编程,学生可以直观地看到代码的执行过程,从而更好地理解编程逻辑。

3.3 原型设计

在软件开发过程中,TUM.CMS.VPLControl 可以用于快速原型设计。开发人员可以通过可视化编程快速构建应用程序的原型,并进行测试和迭代。

4. 典型生态项目

4.1 Dynamo

Dynamo 是一个开源的可视化编程工具,主要用于建筑信息建模(BIM)。它允许用户通过图形界面创建复杂的建筑模型和自动化流程。

4.2 Grasshopper

Grasshopper 是一个基于 Rhino 的插件,用于参数化设计和生成式设计。它通过可视化编程界面,帮助设计师快速创建复杂的建筑和产品设计。

4.3 Node-RED

Node-RED 是一个基于浏览器的可视化编程工具,主要用于物联网(IoT)应用。它允许用户通过拖放节点来创建复杂的物联网应用。

通过这些生态项目,TUM.CMS.VPLControl 可以进一步扩展其应用场景,满足不同领域的需求。

TUM.CMS.VPLControl TUM.CMS.VplControl is a WPF based Visual Programming Control for .Net. 项目地址: https://gitcode.com/gh_mirrors/tu/TUM.CMS.VPLControl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乌昱有Melanie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值