chenghaoran
2024-03-12 375b488be2666cd56e70728624f4eadaefee0440
优化项目结构;
1个文件已修改
15个文件已添加
63 文件已重命名
2个文件已删除
625 ■■■■■ 已修改文件
.gitignore 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Models/Step.cs 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisionBuilder.Core/Api/IProgram.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisionBuilder.Core/Api/ISequnce.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisionBuilder.Core/Api/IStep.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisionBuilder.Core/Api/IStepRunner.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisionBuilder.Core/Entity/Param.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisionBuilder.Core/Properties/AssemblyInfo.cs 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisionBuilder.Core/VisionBuilder.Core.csproj 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisionBuilder.Engine/Properties/AssemblyInfo.cs 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisionBuilder.Engine/Runner.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisionBuilder.Engine/VisionBuilder.Engine.csproj 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisionBuilder.Test/PluginOne.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisionBuilder.Test/Properties/AssemblyInfo.cs 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VisionBuilder.Test/VisionBuilder.Test.csproj 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject.sln 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/App.config 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/App.xaml 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/App.xaml.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Controls/DpPlugin.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Controls/IconTabItem.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Controls/InnerWindow.xaml 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Controls/InnerWindow.xaml.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Controls/MenuTabControl.xaml 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Controls/MenuTabControl.xaml.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Controls/MinInnerWindow.xaml 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Controls/MinInnerWindow.xaml.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Events/TabChange.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Forms/Form1.Designer.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Forms/Form1.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Forms/Form1.resx 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/MainWindow.xaml 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/MainWindow.xaml.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Models/CanvasPosition.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Models/FuncModel.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Models/NotifyBase.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Models/Program.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Models/Sequence.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Models/Step.cs 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Models/Variable.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Properties/AssemblyInfo.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Properties/Resources.Designer.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Properties/Resources.resx 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Properties/Settings.Designer.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Properties/Settings.settings 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Resources/Font/Font.xaml 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Resources/Font/iconfont.ttf 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Resources/Icon/xinzeng_1.png 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Style/Colors.xaml 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Style/CommonTree.xaml 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Style/ListViewStyle.xaml 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Style/MainTab.xaml 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Style/WindowResources.xaml 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/UI/BottomBar.xaml 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/UI/BottomBar.xaml.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/UI/StepSetting.xaml 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/UI/StepSetting.xaml.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/UI/Test/FunctionSetting.xaml 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/UI/Test/FunctionSetting.xaml.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/UI/Test/ProgramList.xaml 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/UI/Test/ProgramList.xaml.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/UI/Test/SequnceList.xaml 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/UI/Test/SequnceList.xaml.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/UI/TestWindow.xaml 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/UI/TestWindow.xaml.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/UI/WorkControl.xaml 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/UI/WorkControl.xaml.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/UI/WorkWindow.xaml 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/UI/WorkWindow.xaml.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Utils/CanvasHelper.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Utils/DdDragHandler.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Utils/DdDropHandler.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Utils/IPlugin.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Utils/Resize.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Utils/Win32Helper.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/Utils/XmlUtil.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/ViewModels/ProgramListViewModel.cs 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/WPFProject.csproj 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/WPFProject.sln 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/packages.config 补丁 | 查看 | 原始文档 | blame | 历史
WPFProject/test.xml 补丁 | 查看 | 原始文档 | blame | 历史
.gitignore
@@ -16,6 +16,7 @@
bld/
[Bb]in/
[Oo]bj/
**/packages/
# Roslyn cache directories
*.ide/
Models/Step.cs
File was deleted
VisionBuilder.Core/Api/IProgram.cs
New file
@@ -0,0 +1,7 @@
namespace VisionBuilder.Core.Api
{
    public interface IProgram
    {
        void RunProgram();
    }
}
VisionBuilder.Core/Api/ISequnce.cs
New file
@@ -0,0 +1,19 @@
using System.Collections.Generic;
namespace VisionBuilder.Core.Api
{
    public interface ISequence
    {
        void SetSteps(List<IStep> steps);
        IList<IStep> GetSteps();
        ISequence AddStep(params IStep[] steps);
        void SetPrograme(IProgram program);
        IProgram GetProgram();
        void RunSequnce();
    }
}
VisionBuilder.Core/Api/IStep.cs
New file
@@ -0,0 +1,7 @@
namespace VisionBuilder.Core.Api
{
    public interface IStep
    {
        void RunStep();
    }
}
VisionBuilder.Core/Api/IStepRunner.cs
New file
@@ -0,0 +1,10 @@
using System.Collections.Generic;
using VisionBuilder.Core.Entity;
namespace VisionBuilder.Core.Api
{
    public interface IStepRunner
    {
        void RunStep(Dictionary<string, Param> param);
    }
}
VisionBuilder.Core/Entity/Param.cs
New file
@@ -0,0 +1,22 @@
namespace VisionBuilder.Core.Entity
{
    public class Param
    {
        private string _Name;
        public string Name
        {
            get { return _Name; }
            set { _Name = value; }
        }
        private string _Value;
        public string Value
        {
            get { return _Value; }
            set { _Value = value; }
        }
    }
}
VisionBuilder.Core/Properties/AssemblyInfo.cs
New file
@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("VisionBuilder.Core")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("HP Inc.")]
[assembly: AssemblyProduct("VisionBuilder.Core")]
[assembly: AssemblyCopyright("Copyright © HP Inc. 2024")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("3e3bf44a-0b69-45c5-9512-528cb48a7106")]
// 程序集的版本信息由下列四个值组成:
//
//      主版本
//      次版本
//      生成号
//      修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
VisionBuilder.Core/VisionBuilder.Core.csproj
New file
@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{3E3BF44A-0B69-45C5-9512-528CB48A7106}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>VisionBuilder.Core</RootNamespace>
    <AssemblyName>VisionBuilder.Core</AssemblyName>
    <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <Deterministic>true</Deterministic>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Core" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Data" />
    <Reference Include="System.Net.Http" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Api\IProgram.cs" />
    <Compile Include="Api\ISequnce.cs" />
    <Compile Include="Api\IStep.cs" />
    <Compile Include="Api\IStepRunner.cs" />
    <Compile Include="Entity\Param.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
VisionBuilder.Engine/Properties/AssemblyInfo.cs
New file
@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("VisionBuilder.Engine")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("HP Inc.")]
[assembly: AssemblyProduct("VisionBuilder.Engine")]
[assembly: AssemblyCopyright("Copyright © HP Inc. 2024")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("8e5e8a68-0b9d-4a6a-b325-730c64603fdf")]
// 程序集的版本信息由下列四个值组成:
//
//      主版本
//      次版本
//      生成号
//      修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
VisionBuilder.Engine/Runner.cs
New file
@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace VisionBuilder.Engine
{
    public class Runner
    {
    }
}
VisionBuilder.Engine/VisionBuilder.Engine.csproj
New file
@@ -0,0 +1,54 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{8E5E8A68-0B9D-4A6A-B325-730C64603FDF}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>VisionBuilder.Engine</RootNamespace>
    <AssemblyName>VisionBuilder.Engine</AssemblyName>
    <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <Deterministic>true</Deterministic>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Core" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Data" />
    <Reference Include="System.Net.Http" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Runner.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\VisionBuilder.Core\VisionBuilder.Core.csproj">
      <Project>{3e3bf44a-0b69-45c5-9512-528cb48a7106}</Project>
      <Name>VisionBuilder.Core</Name>
    </ProjectReference>
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
VisionBuilder.Test/PluginOne.cs
New file
@@ -0,0 +1,14 @@
using System.Collections.Generic;
using VisionBuilder.Core.Api;
using VisionBuilder.Core.Entity;
namespace VisionBuilder.Test
{
    public class PluginOne : IStepRunner
    {
        public void RunStep(Dictionary<string, Param> param)
        {
            param["yoho"] = new Param { Name = "1", Value = "2" };
        }
    }
}
VisionBuilder.Test/Properties/AssemblyInfo.cs
New file
@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("VisionBuilder.Test")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("HP Inc.")]
[assembly: AssemblyProduct("VisionBuilder.Test")]
[assembly: AssemblyCopyright("Copyright © HP Inc. 2024")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("6e1cc97a-b3cb-4e9f-94e0-f264de0d8298")]
// 程序集的版本信息由下列四个值组成:
//
//      主版本
//      次版本
//      生成号
//      修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
VisionBuilder.Test/VisionBuilder.Test.csproj
New file
@@ -0,0 +1,54 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{6E1CC97A-B3CB-4E9F-94E0-F264DE0D8298}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>VisionBuilder.Test</RootNamespace>
    <AssemblyName>VisionBuilder.Test</AssemblyName>
    <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <Deterministic>true</Deterministic>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Core" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Data" />
    <Reference Include="System.Net.Http" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="PluginOne.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\VisionBuilder.Core\VisionBuilder.Core.csproj">
      <Project>{3e3bf44a-0b69-45c5-9512-528cb48a7106}</Project>
      <Name>VisionBuilder.Core</Name>
    </ProjectReference>
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
WPFProject.sln
File was deleted
WPFProject/App.config
WPFProject/App.xaml
WPFProject/App.xaml.cs
WPFProject/Controls/DpPlugin.cs
WPFProject/Controls/IconTabItem.cs
WPFProject/Controls/InnerWindow.xaml
WPFProject/Controls/InnerWindow.xaml.cs
WPFProject/Controls/MenuTabControl.xaml
WPFProject/Controls/MenuTabControl.xaml.cs
WPFProject/Controls/MinInnerWindow.xaml
WPFProject/Controls/MinInnerWindow.xaml.cs
WPFProject/Events/TabChange.cs
WPFProject/Forms/Form1.Designer.cs
WPFProject/Forms/Form1.cs
WPFProject/Forms/Form1.resx
WPFProject/MainWindow.xaml
WPFProject/MainWindow.xaml.cs
WPFProject/Models/CanvasPosition.cs
WPFProject/Models/FuncModel.cs
WPFProject/Models/NotifyBase.cs
WPFProject/Models/Program.cs
File was renamed from Models/Program.cs
@@ -1,15 +1,13 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Serialization;
using VisionBuilder.Core.Api;
using VisionBuilder.Core.Entity;
namespace WPFProject.Models
{
    public class Program : NotifyBase
    public class Program : NotifyBase, IProgram
    {
        /// <summary>
        /// 程序名
@@ -55,7 +53,7 @@
        /// <summary>
        /// 计算临时参数
        /// </summary>
        private Dictionary<string, Param> _TempVars;
        private Dictionary<string, Param> _TempVars = new Dictionary<string, Param>();
        [XmlIgnore]
        public Dictionary<string, Param> TempVars
        {
@@ -74,11 +72,11 @@
            return this;
        }
        public void Run()
        public void RunProgram()
        {
            foreach (Sequence sequence in Sequences)
            {
                sequence.Run();
                sequence.RunSequnce();
            }
        }
    }
WPFProject/Models/Sequence.cs
File was renamed from Models/Sequence.cs
@@ -1,5 +1,7 @@
using System.Collections.ObjectModel;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Xml.Serialization;
using VisionBuilder.Core.Api;
namespace WPFProject.Models
{
@@ -16,10 +18,7 @@
        [XmlIgnore]
        public Program Program { get; set; }
        private ObservableCollection<Step> _Steps = new ObservableCollection<Step>() {
            new Step{ Name = "000"},new Step{ Name="111"}
        };
        private ObservableCollection<Step> _Steps = new ObservableCollection<Step>();
        public ObservableCollection<Step> Steps
        {
            get { return _Steps; }
@@ -31,18 +30,24 @@
            foreach (Step step in steps)
            {
                if (step == null) continue;
                step.Program = Program;
                step.Sequence = this;
                Steps.Add(step);
            }
            return this;
        }
        public void Run()
        public void RunSequnce()
        {
            foreach (Step step in Steps) {
                step.Run();
            foreach (Step step in Steps)
            {
                step.RunStep();
            }
        }
        public Sequence()
        {
            AddStep(new Step { Name = "000" }, new Step { Name = "111" });
        }
    }
}
WPFProject/Models/Step.cs
New file
@@ -0,0 +1,75 @@
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Xml.Serialization;
using VisionBuilder.Core.Api;
namespace WPFProject.Models
{
    public class Step : NotifyBase
    {
        private static readonly Type InterfaceType = typeof(IStepRunner);
        private static readonly Dictionary<string, Assembly> Cache = new Dictionary<string, Assembly>();
        #region 字段
        [XmlIgnore]
        public Program Program { get; set; }
        [XmlIgnore]
        public Sequence Sequence { get; set; }
        private int _Index;
        public int Index
        {
            get { return _Index; }
            set => RaiseAndSetIfChanged(ref _Index, value);
        }
        private string _Name;
        public string Name
        {
            get { return _Name; }
            set => RaiseAndSetIfChanged(ref _Name, value);
        }
        private string _DllPath = "C:/Users/cheng/source/repos/WPFProject/VisionBuilder.Test/bin/Debug/VisionBuilder.Test.dll";
        public string DllPath
        {
            get { return _DllPath; }
            set => RaiseAndSetIfChanged(ref _DllPath, value);
        }
        private string _ClassName = "VisionBuilder.Test.PluginOne";
        public string ClassName
        {
            get { return _ClassName; }
            set => RaiseAndSetIfChanged(ref _ClassName, value);
        }
        private string _MethodName;
        public string MethodName
        {
            get { return _MethodName; }
            set => RaiseAndSetIfChanged(ref _MethodName, value);
        }
        private string _Description;
        public string Description
        {
            get { return _Description; }
            set => RaiseAndSetIfChanged(ref _Description, value);
        }
        #endregion
        public void RunStep()
        {
            Assembly assembly = Assembly.LoadFrom(DllPath);
            Type type = assembly.GetType(ClassName);
            if (type != null && InterfaceType.IsAssignableFrom(type))
            {
                IStepRunner stepRunner = (IStepRunner)assembly.CreateInstance(ClassName);
                stepRunner.RunStep(Sequence.Program.TempVars);
            }
        }
    }
}
WPFProject/Models/Variable.cs
WPFProject/Properties/AssemblyInfo.cs
WPFProject/Properties/Resources.Designer.cs
WPFProject/Properties/Resources.resx
WPFProject/Properties/Settings.Designer.cs
WPFProject/Properties/Settings.settings
WPFProject/Resources/Font/Font.xaml
WPFProject/Resources/Font/iconfont.ttf
Binary files differ
WPFProject/Resources/Icon/xinzeng_1.png

WPFProject/Style/Colors.xaml
WPFProject/Style/CommonTree.xaml
WPFProject/Style/ListViewStyle.xaml
WPFProject/Style/MainTab.xaml
WPFProject/Style/WindowResources.xaml
WPFProject/UI/BottomBar.xaml
WPFProject/UI/BottomBar.xaml.cs
WPFProject/UI/StepSetting.xaml
WPFProject/UI/StepSetting.xaml.cs
WPFProject/UI/Test/FunctionSetting.xaml
WPFProject/UI/Test/FunctionSetting.xaml.cs
WPFProject/UI/Test/ProgramList.xaml
WPFProject/UI/Test/ProgramList.xaml.cs
File was renamed from UI/Test/ProgramList.xaml.cs
@@ -65,14 +65,16 @@
            ttt();
            if (e.AddedItems.Count > 0)
            {
                ProgramChanged?.Invoke(this, e.AddedItems[0] as Program);
                Program program = e.AddedItems[0] as Program;
                ProgramChanged?.Invoke(this, program);
                program.RunProgram();
            }
        }
        public void ttt()
        {
            string path = "X:\\vs\\WPFProject\\test.xml";
            XmlUtil.SerialToFile(Programs, path);
            //string path = "X:\\vs\\WPFProject\\test.xml";
            //XmlUtil.SerialToFile(Programs, path);
        }
    }
}
WPFProject/UI/Test/SequnceList.xaml
WPFProject/UI/Test/SequnceList.xaml.cs
WPFProject/UI/TestWindow.xaml
WPFProject/UI/TestWindow.xaml.cs
WPFProject/UI/WorkControl.xaml
WPFProject/UI/WorkControl.xaml.cs
WPFProject/UI/WorkWindow.xaml
WPFProject/UI/WorkWindow.xaml.cs
WPFProject/Utils/CanvasHelper.cs
WPFProject/Utils/DdDragHandler.cs
WPFProject/Utils/DdDropHandler.cs
WPFProject/Utils/IPlugin.cs
WPFProject/Utils/Resize.cs
WPFProject/Utils/Win32Helper.cs
WPFProject/Utils/XmlUtil.cs
WPFProject/ViewModels/ProgramListViewModel.cs
WPFProject/WPFProject.csproj
File was renamed from WPFProject.csproj
@@ -293,13 +293,13 @@
    <WCFMetadata Include="Connected Services\" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\VisionBuilder.Core\VisionBuilder.Core.csproj">
      <Project>{65100b0e-1eba-4534-ac73-61ad3ae6ab36}</Project>
      <Name>VisionBuilder.Core</Name>
    </ProjectReference>
    <Resource Include="Resources\Icon\xinzeng_1.png" />
  </ItemGroup>
  <ItemGroup>
    <Resource Include="Resources\Icon\xinzeng_1.png" />
    <ProjectReference Include="..\VisionBuilder.Core\VisionBuilder.Core.csproj">
      <Project>{3e3bf44a-0b69-45c5-9512-528cb48a7106}</Project>
      <Name>VisionBuilder.Core</Name>
    </ProjectReference>
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
WPFProject/WPFProject.sln
New file
@@ -0,0 +1,43 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.33328.57
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WPFProject", "WPFProject.csproj", "{D47D2314-5DD5-4899-ADF9-15ED057289D3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VisionBuilder.Core", "..\VisionBuilder.Core\VisionBuilder.Core.csproj", "{3E3BF44A-0B69-45C5-9512-528CB48A7106}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VisionBuilder.Test", "..\VisionBuilder.Test\VisionBuilder.Test.csproj", "{6E1CC97A-B3CB-4E9F-94E0-F264DE0D8298}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VisionBuilder.Engine", "..\VisionBuilder.Engine\VisionBuilder.Engine.csproj", "{8E5E8A68-0B9D-4A6A-B325-730C64603FDF}"
EndProject
Global
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Any CPU = Debug|Any CPU
        Release|Any CPU = Release|Any CPU
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {D47D2314-5DD5-4899-ADF9-15ED057289D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {D47D2314-5DD5-4899-ADF9-15ED057289D3}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {D47D2314-5DD5-4899-ADF9-15ED057289D3}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {D47D2314-5DD5-4899-ADF9-15ED057289D3}.Release|Any CPU.Build.0 = Release|Any CPU
        {3E3BF44A-0B69-45C5-9512-528CB48A7106}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {3E3BF44A-0B69-45C5-9512-528CB48A7106}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {3E3BF44A-0B69-45C5-9512-528CB48A7106}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {3E3BF44A-0B69-45C5-9512-528CB48A7106}.Release|Any CPU.Build.0 = Release|Any CPU
        {6E1CC97A-B3CB-4E9F-94E0-F264DE0D8298}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {6E1CC97A-B3CB-4E9F-94E0-F264DE0D8298}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {6E1CC97A-B3CB-4E9F-94E0-F264DE0D8298}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {6E1CC97A-B3CB-4E9F-94E0-F264DE0D8298}.Release|Any CPU.Build.0 = Release|Any CPU
        {8E5E8A68-0B9D-4A6A-B325-730C64603FDF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {8E5E8A68-0B9D-4A6A-B325-730C64603FDF}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {8E5E8A68-0B9D-4A6A-B325-730C64603FDF}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {8E5E8A68-0B9D-4A6A-B325-730C64603FDF}.Release|Any CPU.Build.0 = Release|Any CPU
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE
    EndGlobalSection
    GlobalSection(ExtensibilityGlobals) = postSolution
        SolutionGuid = {784CEA1D-A890-4625-B0C1-72294A6B4803}
    EndGlobalSection
EndGlobal
WPFProject/packages.config
WPFProject/test.xml