chenn
2025-03-28 9dba1b6adc0bbb4aa8cc531f4e6d822bf1a56be3
添加例子
已修改14个文件
已添加44个文件
2164 ■■■■■ 文件已修改
Client/DesktopDebug/App.config 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/AppIcon.ico 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/AppIcon256.png 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/DPumpHydr.DesktopDebug.csproj 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/DPumpHydr.DesktopDebug.csproj.user 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/MainRibbonCmdHelper.cs 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/MainWindow/BaseInfoDebugFrm.Designer.cs 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/MainWindow/BaseInfoDebugFrm.cs 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/MainWindow/BaseInfoDebugFrm.resx 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/MainWindow/SectionBundleInfoDebug.Designer.cs 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/MainWindow/SectionBundleInfoDebug.cs 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/MainWindow/SectionBundleInfoDebug.resx 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/MainWindow/SectionShapeInfo18Debug.Designer.cs 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/MainWindow/SectionShapeInfo18Debug.cs 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/MainWindow/SectionShapeInfo18Debug.resx 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/MainWindow/SetOutflowPatasDebug.Designer.cs 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/MainWindow/SetOutflowPatasDebug.cs 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/MainWindow/SetOutflowPatasDebug.resx 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/MainWindow/ThicknessPatasDebug.Designer.cs 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/MainWindow/ThicknessPatasDebug.cs 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/MainWindow/ThicknessPatasDebug.resx 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/Program.cs 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/Properties/Resources.Designer.cs 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/Properties/Resources.resx 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/Properties/Settings.Designer.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/Properties/Settings.settings 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/Resources/AppIcon.png 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/Resources/LoginBackgroup.jpg 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/Resources/MainIcon/App.png 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/Resources/MainIcon/Bag.png 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/Resources/MainIcon/Book.png 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/Resources/MainIcon/Books.png 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/Resources/MainIcon/Game.png 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/Resources/MainIcon/Headset.png 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/Resources/MainIcon/Help.png 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/Resources/MainIcon/Mylivn.png 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/Resources/MainIcon/Search.png 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/Resources/MainIcon/Shelf.png 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/Resources/MainIcon/User.png 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/Resources/logo.png 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/Resources/setting.png 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/Resources/user.png 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/Resources/woke.png 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/Resources/yelun.png 补丁 | 查看 | 原始文档 | blame | 历史
DPumpHydr.Desktop.sln 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/DPumpHydr.WinFrmUI.Volute/MainViewPage_ExportImport.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/DPumpHydr.WinFrmUI.Volute/MainViewPage_截面18.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/DPumpHydr.WinFrmUI.Volute/出水设计/ViewModel/OutflowParas.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/DPumpHydr.WinFrmUI.Volute/出水设计/ViewModel/OutflowStyleHelper.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/DPumpHydr.WinFrmUI.Volute/出水设计/ViewModel/eOutflowStyle.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/DPumpHydr.WinFrmUI.Volute/出水设计/ctrlSetOutflowParas.Designer.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/DPumpHydr.WinFrmUI.Volute/出水设计/ctrlSetOutflowParas.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/DPumpHydr.WinFrmUI.Volute/加厚/ctrlThicknessParas.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/DPumpHydr.WinFrmUI.Volute/基本参数/ViewModel/GeomBaseInfo.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/DPumpHydr.WinFrmUI.Volute/基本参数/ViewModel/HdrBaseInfo.cs 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/DPumpHydr.WinFrmUI.Volute/基本参数/ctrlHdrBaseInfo.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/DPumpHydr.WinFrmUI.Volute/断面设计/ViewModel/SectionBundleInfo.cs 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/DPumpHydr.WinFrmUI.Volute/断面设计/ctrlSectionBundleInfo.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Client/DesktopDebug/App.config
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System">
      <section name="DevExpress.LookAndFeel.Design.AppSettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </sectionGroup>
  </configSections>
  <applicationSettings>
    <DevExpress.LookAndFeel.Design.AppSettings>
      <setting name="DPIAwarenessMode" serializeAs="String">
        <value>System</value>
      </setting>
      <setting name="RegisterBonusSkins" serializeAs="String">
        <value>True</value>
      </setting>
    </DevExpress.LookAndFeel.Design.AppSettings>
  </applicationSettings>
</configuration>
Client/DesktopDebug/AppIcon.ico
Client/DesktopDebug/AppIcon256.png
Client/DesktopDebug/DPumpHydr.DesktopDebug.csproj
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,96 @@
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net8.0-windows7.0</TargetFramework>
    <UseWindowsForms>true</UseWindowsForms>
    <Company>上海义维流体科技有限公司</Company>
    <ApplicationIcon>AppIcon.ico</ApplicationIcon>
  </PropertyGroup>
  <ItemGroup>
    <Compile Remove="MainWindow4Wen å¤‡ä»½\**" />
    <Compile Remove="MainWindow\新建文件夹\**" />
    <Compile Remove="Resources\123\**" />
    <Compile Remove="Resources\MainIcon\**" />
    <EmbeddedResource Remove="MainWindow4Wen å¤‡ä»½\**" />
    <EmbeddedResource Remove="MainWindow\新建文件夹\**" />
    <EmbeddedResource Remove="Resources\123\**" />
    <EmbeddedResource Remove="Resources\MainIcon\**" />
    <None Remove="MainWindow4Wen å¤‡ä»½\**" />
    <None Remove="MainWindow\新建文件夹\**" />
    <None Remove="Resources\123\**" />
    <None Remove="Resources\MainIcon\**" />
  </ItemGroup>
  <ItemGroup>
    <Compile Remove="MainRibbonCmdHelper.cs" />
    <Compile Remove="MainWindow\frmMainWindow.Designer - å‰¯æœ¬.cs" />
    <Compile Remove="MainWindow\frmMainWindowAntdUI.cs" />
    <Compile Remove="MainWindow\frmMainWindowAntdUI.Designer.cs" />
    <Compile Remove="MainWindow\frmMainWindowRLT.cs" />
    <Compile Remove="MainWindow\frmMainWindowRLT.Designer.cs" />
    <Compile Remove="MainWindow\MainWindowOld.cs" />
    <Compile Remove="MainWindow\MainWindowOld.designer.cs" />
    <Compile Remove="Main\Form1.cs" />
    <Compile Remove="Main\Form1.Designer.cs" />
    <Compile Remove="RibbonTestForm.cs" />
    <Compile Remove="RibbonTestForm.Designer.cs" />
    <Compile Remove="RibbonTestForm_InitialRibbon.cs" />
  </ItemGroup>
  <ItemGroup>
    <EmbeddedResource Remove="MainWindow\frmMainWindowAntdUI.resx" />
    <EmbeddedResource Remove="MainWindow\frmMainWindowRLT.resx" />
    <EmbeddedResource Remove="MainWindow\MainWindowOld.en-US.resx" />
    <EmbeddedResource Remove="MainWindow\MainWindowOld.resx" />
    <EmbeddedResource Remove="Main\Form1.resx" />
    <EmbeddedResource Remove="RibbonTestForm.resx" />
  </ItemGroup>
  <ItemGroup>
    <None Remove="Resources\Eventech32.png" />
    <None Remove="Resources\logo - å‰¯æœ¬.png" />
  </ItemGroup>
  <ItemGroup>
    <Content Include="AppIcon.ico" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\..\Model\DPumpHydr.Model.Core\DPumpHydr.Model.Core.csproj" />
    <ProjectReference Include="..\..\WinFrmUI\DPumpHydr.WinFrmUI.Assets\DPumpHydr.WinFrmUI.Assets.csproj" />
    <ProjectReference Include="..\..\WinFrmUI\DPumpHydr.WinFrmUI.Core\DPumpHydr.WinFrmUI.Core.csproj" />
    <ProjectReference Include="..\..\WinFrmUI\DPumpHydr.WinFrmUI.Impeller\DPumpHydr.WinFrmUI.Impeller.csproj" />
    <ProjectReference Include="..\..\WinFrmUI\DPumpHydr.WinFrmUI.Ribbon\DPumpHydr.WinFrmUI.Ribbon.csproj" />
    <ProjectReference Include="..\..\WinFrmUI\DPumpHydr.WinFrmUI.Volute\DPumpHydr.WinFrmUI.Volute.csproj" />
  </ItemGroup>
  <ItemGroup>
    <Compile Update="Properties\Resources.Designer.cs">
      <DesignTime>True</DesignTime>
      <AutoGen>True</AutoGen>
      <DependentUpon>Resources.resx</DependentUpon>
    </Compile>
    <Compile Update="Properties\Settings.Designer.cs">
      <DesignTimeSharedInput>True</DesignTimeSharedInput>
      <AutoGen>True</AutoGen>
      <DependentUpon>Settings.settings</DependentUpon>
    </Compile>
  </ItemGroup>
  <ItemGroup>
    <EmbeddedResource Update="Properties\Resources.resx">
      <Generator>ResXFileCodeGenerator</Generator>
      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
    </EmbeddedResource>
  </ItemGroup>
  <ItemGroup>
    <None Update="Properties\Settings.settings">
      <Generator>SettingsSingleFileGenerator</Generator>
      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
    </None>
  </ItemGroup>
</Project>
Client/DesktopDebug/DPumpHydr.DesktopDebug.csproj.user
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup />
  <ItemGroup>
    <Compile Update="MainWindow\BaseInfoDebugFrm.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Update="MainWindow\SectionBundleInfoDebug.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Update="MainWindow\SectionShapeInfo18Debug.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Update="MainWindow\SetOutflowPatasDebug.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Update="MainWindow\ThicknessPatasDebug.cs">
      <SubType>Form</SubType>
    </Compile>
  </ItemGroup>
</Project>
Client/DesktopDebug/MainRibbonCmdHelper.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
namespace DPumpHydr.DesktopMain
{
    internal class MainRibbonCmdHelper
    {
        public void Read()
        {
            string filePath = @"c:\1.xml";
            System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
            xmlDoc.Load(filePath);
            System.Xml.XmlElement rootNode = xmlDoc.DocumentElement;//根节点
            if (rootNode == null)
                return;
            var nodeVersionInfo = rootNode.SelectSingleNode("VersionInfo");
            if (nodeVersionInfo == null)
                return;
            if (nodeVersionInfo.InnerText == "V1")
            {
                Read_V1(rootNode);
            }
        }
        private static void Read_V1(System.Xml.XmlElement rootNode)
        {
            #region V1
            #region ProductSetting
            var nodeProductSetting = rootNode.SelectSingleNode("RibbonForm") as XmlElement;
            if (nodeProductSetting != null)
                return;
                //foreach (var xmlNodeRibbonTab in nodeProductSetting.SelectNodes("RibbonTab"))
                //{
                //    XmlElement xmlElement = (XmlElement)xmlNodeRibbonTab;//将节点转换一下类型
                // var atrr_tab_text =  xmlElement.GetAttribute("Text");
                //foreach (var xmlNodeRibbonTab in nodeProductSetting.SelectNodes("RibbonTab"))
                //{
                //    XmlElement xmlElement = (XmlElement)xmlNodeRibbonTab;//将节点转换一下类型
                //}
        }
            #endregion
            #endregion
    }
}
Client/DesktopDebug/MainWindow/BaseInfoDebugFrm.Designer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,70 @@
namespace DPumpHydr.DesktopDebug.MainWindow
{
    partial class BaseInfoDebugFrm
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;
        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }
        #region Windows Form Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            button1 = new System.Windows.Forms.Button();
            panel1 = new System.Windows.Forms.Panel();
            SuspendLayout();
            //
            // button1
            //
            button1.Location = new System.Drawing.Point(252, 12);
            button1.Name = "button1";
            button1.Size = new System.Drawing.Size(96, 23);
            button1.TabIndex = 0;
            button1.Text = "获取控件参数";
            button1.UseVisualStyleBackColor = true;
            button1.Click += button1_Click;
            //
            // panel1
            //
            panel1.Location = new System.Drawing.Point(22, 41);
            panel1.Name = "panel1";
            panel1.Size = new System.Drawing.Size(326, 815);
            panel1.TabIndex = 1;
            //
            // BaseInfoDebugFrm
            //
            AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
            AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            ClientSize = new System.Drawing.Size(357, 967);
            Controls.Add(panel1);
            Controls.Add(button1);
            Name = "BaseInfoDebugFrm";
            Text = "BaseInfoDebugFrm";
            Load += BaseInfoDebugFrm_Load;
            ResumeLayout(false);
        }
        #endregion
        private System.Windows.Forms.Button button1;
        private System.Windows.Forms.Panel panel1;
    }
}
Client/DesktopDebug/MainWindow/BaseInfoDebugFrm.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,110 @@
using DPumpHydr.WinFrmUI.Volute.ViewModel;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DPumpHydr.DesktopDebug.MainWindow
{
    public partial class BaseInfoDebugFrm : Form
    {
        public BaseInfoDebugFrm()
        {
            InitializeComponent();
        }
        DPumpHydr.WinFrmUI.Volute.ctrlHdrBaseInfo ctrl = null;
        private void BaseInfoDebugFrm_Load(object sender, EventArgs e)
        {
            ctrl = new DPumpHydr.WinFrmUI.Volute.ctrlHdrBaseInfo();
            ctrl.Name ="ctrlHdrBaseInfo";
            ctrl.Dock = DockStyle.Fill;
            this.panel1.Controls.Add(ctrl);
            //例子1
            #region å¦‚果没有初始传入参数,控件进行初始化参数
            ctrl.InitialParas();
            #endregion
            //例子2
            #region å¦‚果需要传入基本参数
            ////基本参数类
            //DPumpHydr.WinFrmUI.Volute.ViewModel.HdrBaseInfo hdrBase = new DPumpHydr.WinFrmUI.Volute.ViewModel.HdrBaseInfo()
            //{
            //    ShapeType = 0,
            //    Q = 148,
            //    H = 90,
            //    n = 2900,
            //    D2 = 278,
            //    B2 = 15,
            //    IsSXB = false,
            //};
            ////计算转速比
            //hdrBase.CalcNs();
            ////基圆参数
            //DPumpHydr.WinFrmUI.Volute.ViewModel.GeomBaseInfo geomBase = new DPumpHydr.WinFrmUI.Volute.ViewModel.GeomBaseInfo()
            //{
            //    D3 = 295,
            //    B3 = 30,
            //    FAI0 = 32
            //};
            ////传入控件显示参数
            //ctrl.SetBindingData(geomBase);
            //ctrl.SetBindingData(hdrBase);
            #endregion
            //例子3
            #region å¦‚果只有基本参数,没有基圆参数
            ////基本参数类
            //DPumpHydr.WinFrmUI.Volute.ViewModel.HdrBaseInfo hdrBase = new DPumpHydr.WinFrmUI.Volute.ViewModel.HdrBaseInfo()
            //{
            //    ShapeType = 0,
            //    Q = 148,
            //    H = 90,
            //    n = 2900,
            //    D2 = 278,
            //    B2 = 15,
            //    IsSXB = false,
            //};
            //DPumpHydr.WinFrmUI.Volute.ViewModel.GeomBaseInfo geomBase = new DPumpHydr.WinFrmUI.Volute.ViewModel.GeomBaseInfo();
            ////通过基本参数对基圆参数进行初始化
            //geomBase.Initial(hdrBase);
            ////传入控件显示参数
            //ctrl.SetBindingData(geomBase);
            //ctrl.SetBindingData(hdrBase);
            #endregion
        }
        private void button1_Click(object sender, EventArgs e)
        {
            //基本参数类
            DPumpHydr.WinFrmUI.Volute.ViewModel.GeomBaseInfo geomBase = new DPumpHydr.WinFrmUI.Volute.ViewModel.GeomBaseInfo();
            DPumpHydr.WinFrmUI.Volute.ViewModel.HdrBaseInfo hdrBase = new DPumpHydr.WinFrmUI.Volute.ViewModel.HdrBaseInfo();
            //获取控件显示数据参数
            string error = ctrl.GetBindingData(out hdrBase, out geomBase);
            if(error !=null)
            {
                MessageBox.Show(error);
            }
            else
            {
                MessageBox.Show("成功获取参数\r\n流量:"+hdrBase.Q
                                 +"\r\n扬程:" + hdrBase.H+
                                 "\r\n转速:"+hdrBase.n+
                                 "\r\n叶轮宽度:" + hdrBase.B2+
                                 "\r\n叶轮外径:" + hdrBase.D2+
                                 "\r\n是否双吸泵:" + hdrBase.IsSXB+
                                 "\r\n比转速:" + hdrBase.n +
                                 "\r\n基圆直径:" + geomBase.D3 +
                                 "\r\n基圆宽度:" + geomBase.B3 +
                                 "\r\n割舌角:" + geomBase.FAI0);
            }
        }
    }
}
Client/DesktopDebug/MainWindow/BaseInfoDebugFrm.resx
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    Microsoft ResX Schema
    Version 2.0
    The primary goals of this format is to allow a simple XML format
    that is mostly human readable. The generation and parsing of the
    various data types are done through the TypeConverter classes
    associated with the data types.
    Example:
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
    There are any number of "resheader" rows that contain simple
    name/value pairs.
    Each data row contains a name, and value. The row also contains a
    type or mimetype. Type corresponds to a .NET class that support
    text/value conversion through the TypeConverter architecture.
    Classes that don't support this are serialized and stored with the
    mimetype set.
    The mimetype is used for serialized objects, and tells the
    ResXResourceReader how to depersist the object. This is currently not
    extensible. For a given mimetype the value must be set accordingly:
    Note - application/x-microsoft.net.object.binary.base64 is the format
    that the ResXResourceWriter will generate, however the reader can
    read any of the formats listed below.
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>
Client/DesktopDebug/MainWindow/SectionBundleInfoDebug.Designer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,70 @@
namespace DPumpHydr.DesktopDebug.MainWindow
{
    partial class SectionBundleInfoDebug
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;
        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }
        #region Windows Form Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            panel1 = new System.Windows.Forms.Panel();
            button1 = new System.Windows.Forms.Button();
            SuspendLayout();
            //
            // panel1
            //
            panel1.Location = new System.Drawing.Point(12, 35);
            panel1.Name = "panel1";
            panel1.Size = new System.Drawing.Size(335, 815);
            panel1.TabIndex = 0;
            //
            // button1
            //
            button1.Location = new System.Drawing.Point(217, 9);
            button1.Name = "button1";
            button1.Size = new System.Drawing.Size(113, 23);
            button1.TabIndex = 1;
            button1.Text = "获取控件参数";
            button1.UseVisualStyleBackColor = true;
            button1.Click += button1_Click;
            //
            // SectionBundleInfoDebug
            //
            AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
            AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            ClientSize = new System.Drawing.Size(358, 880);
            Controls.Add(button1);
            Controls.Add(panel1);
            Name = "SectionBundleInfoDebug";
            Text = "SectionBundleInfoDebug";
            Load += SectionBundleInfoDebug_Load;
            ResumeLayout(false);
        }
        #endregion
        private System.Windows.Forms.Panel panel1;
        private System.Windows.Forms.Button button1;
    }
}
Client/DesktopDebug/MainWindow/SectionBundleInfoDebug.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,88 @@
using DPumpHydr.WinFrmUI.Volute.ViewModel;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DPumpHydr.DesktopDebug.MainWindow
{
    public partial class SectionBundleInfoDebug : Form
    {
        public SectionBundleInfoDebug()
        {
            InitializeComponent();
        }
        DPumpHydr.WinFrmUI.Volute.ctrlSectionBundleInfo ctrl = null;
        private void SectionBundleInfoDebug_Load(object sender, EventArgs e)
        {
            ctrl = new DPumpHydr.WinFrmUI.Volute.ctrlSectionBundleInfo();
            ctrl.Name ="ctrlSectionBundleInfo";
            ctrl.Dock = DockStyle.Fill;
            this.panel1.Controls.Add(ctrl);
            //基本参数类
            DPumpHydr.WinFrmUI.Volute.ViewModel.HdrBaseInfo hdrBase = new DPumpHydr.WinFrmUI.Volute.ViewModel.HdrBaseInfo()
            {
                ShapeType = 0,
                Q = 148,
                H = 90,
                n = 2900,
                D2 = 278,
                B2 = 15,
                IsSXB = false,
            };
            //计算转速比
            hdrBase.CalcNs();
            //基圆参数
            DPumpHydr.WinFrmUI.Volute.ViewModel.GeomBaseInfo geomBase = new DPumpHydr.WinFrmUI.Volute.ViewModel.GeomBaseInfo()
            {
                D3 = 295,
                B3 = 30,
                FAI0 = 32
            };
            #region æ ¹æ®åŸºæœ¬å‚数、基圆参数 å¯¹1-8断面参数进行初始化 æˆ–者 ä¼ å…¥æ›´æ–°åŽçš„基本参数、基圆参数对断面参数进行更新
            //根据基本参数、基圆参数传到控件中对断面参数进行计算并展示
            //如果是从基本参数前进到该控件 é‚£ä¹ˆä¼šæ ¹æ®æ‰€æä¾›çš„基本参数和基圆参数去进行初始化计算/更新
            ////如果是从出口或者加厚后退到该控件 é‚£ä¹ˆæŽ§ä»¶ä¸ä¼šè¿›è¡Œä»»ä½•操作
            //如果需要覆盖断面参数 true
            ////如果不需要覆盖断面参数 false
            ctrl.ShowPage(hdrBase, geomBase, DPumpHydr.ViewModel.eWizardStepDiretion.前进, true);
            #endregion
        }
        private void button1_Click(object sender, EventArgs e)
        {
            //1-8断面参数类
            DPumpHydr.WinFrmUI.Volute.ViewModel.SectionBundleInfo sectionBundle = new WinFrmUI.Volute.ViewModel.SectionBundleInfo();
            string error = "";
            sectionBundle = ctrl.GetBindingData(out error);
            if (!string.IsNullOrEmpty(error))
            {
                MessageBox.Show(error);
            }
            else
            {
                MessageBox.Show("成功获取参数\r\n速度系数:"+sectionBundle.K3
                                 +"\r\n平均流速:" + sectionBundle.V3+
                                 "\r\n断面类型:"+sectionBundle.ShapeType.ToString()+
                                 "\r\n外围的半径 ï¼š" + sectionBundle.R_out+
                                 "\r\n断面1:" +" é«˜åº¦:" +sectionBundle.H[1]+" å·¦åœ†è§’半径:" +sectionBundle.R_Left[1]+" å³åœ†è§’半径:" +sectionBundle.R_Right[1]+" é¢ç§¯:" +sectionBundle.Area[1]+" å·¦gama:" +sectionBundle.GaMa_Left[1]+" å³gama:" +sectionBundle.GaMa_Right[1]+
                                 "\r\n断面2:" +" é«˜åº¦:" +sectionBundle.H[2]+" å·¦åœ†è§’半径:" +sectionBundle.R_Left[2]+" å³åœ†è§’半径:" +sectionBundle.R_Right[2]+" é¢ç§¯:" +sectionBundle.Area[2]+" å·¦gama:" +sectionBundle.GaMa_Left[2]+" å³gama:" +sectionBundle.GaMa_Right[2]+
                                 "\r\n断面3:" +" é«˜åº¦:" +sectionBundle.H[3]+" å·¦åœ†è§’半径:" +sectionBundle.R_Left[3]+" å³åœ†è§’半径:" +sectionBundle.R_Right[3]+" é¢ç§¯:" +sectionBundle.Area[3]+" å·¦gama:" +sectionBundle.GaMa_Left[3]+" å³gama:" +sectionBundle.GaMa_Right[3]+
                                 "\r\n断面4:" +" é«˜åº¦:" +sectionBundle.H[4]+" å·¦åœ†è§’半径:" +sectionBundle.R_Left[4]+" å³åœ†è§’半径:" +sectionBundle.R_Right[4]+" é¢ç§¯:" +sectionBundle.Area[4]+" å·¦gama:" +sectionBundle.GaMa_Left[4]+" å³gama:" +sectionBundle.GaMa_Right[4]+
                                 "\r\n断面5:" +" é«˜åº¦:" +sectionBundle.H[5]+" å·¦åœ†è§’半径:" +sectionBundle.R_Left[5]+" å³åœ†è§’半径:" +sectionBundle.R_Right[5]+" é¢ç§¯:" +sectionBundle.Area[5]+" å·¦gama:" +sectionBundle.GaMa_Left[5]+" å³gama:" +sectionBundle.GaMa_Right[5]+
                                 "\r\n断面6:" +" é«˜åº¦:" +sectionBundle.H[6]+" å·¦åœ†è§’半径:" +sectionBundle.R_Left[6]+" å³åœ†è§’半径:" +sectionBundle.R_Right[6]+" é¢ç§¯:" +sectionBundle.Area[6]+" å·¦gama:" +sectionBundle.GaMa_Left[6]+" å³gama:" +sectionBundle.GaMa_Right[6]+
                                 "\r\n断面7:" +" é«˜åº¦:" +sectionBundle.H[7]+" å·¦åœ†è§’半径:" +sectionBundle.R_Left[7]+" å³åœ†è§’半径:" +sectionBundle.R_Right[7]+" é¢ç§¯:" +sectionBundle.Area[7]+" å·¦gama:" +sectionBundle.GaMa_Left[7]+" å³gama:" +sectionBundle.GaMa_Right[7]+
                                 "\r\n断面8:" +" é«˜åº¦:" +sectionBundle.H[8]+" å·¦åœ†è§’半径:" +sectionBundle.R_Left[8]+" å³åœ†è§’半径:" +sectionBundle.R_Right[8]+" é¢ç§¯:" +sectionBundle.Area[8]+" å·¦gama:" +sectionBundle.GaMa_Left[8]+" å³gama:" +sectionBundle.GaMa_Right[8]
                                 );
            }
        }
    }
}
Client/DesktopDebug/MainWindow/SectionBundleInfoDebug.resx
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    Microsoft ResX Schema
    Version 2.0
    The primary goals of this format is to allow a simple XML format
    that is mostly human readable. The generation and parsing of the
    various data types are done through the TypeConverter classes
    associated with the data types.
    Example:
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
    There are any number of "resheader" rows that contain simple
    name/value pairs.
    Each data row contains a name, and value. The row also contains a
    type or mimetype. Type corresponds to a .NET class that support
    text/value conversion through the TypeConverter architecture.
    Classes that don't support this are serialized and stored with the
    mimetype set.
    The mimetype is used for serialized objects, and tells the
    ResXResourceReader how to depersist the object. This is currently not
    extensible. For a given mimetype the value must be set accordingly:
    Note - application/x-microsoft.net.object.binary.base64 is the format
    that the ResXResourceWriter will generate, however the reader can
    read any of the formats listed below.
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>
Client/DesktopDebug/MainWindow/SectionShapeInfo18Debug.Designer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,70 @@
namespace DPumpHydr.DesktopDebug.MainWindow
{
    partial class SectionShapeInfo18Debug
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;
        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }
        #region Windows Form Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            panel1 = new System.Windows.Forms.Panel();
            button1 = new System.Windows.Forms.Button();
            SuspendLayout();
            //
            // panel1
            //
            panel1.Location = new System.Drawing.Point(12, 32);
            panel1.Name = "panel1";
            panel1.Size = new System.Drawing.Size(335, 808);
            panel1.TabIndex = 0;
            //
            // button1
            //
            button1.Location = new System.Drawing.Point(206, 3);
            button1.Name = "button1";
            button1.Size = new System.Drawing.Size(140, 23);
            button1.TabIndex = 1;
            button1.Text = "获取控件参数";
            button1.UseVisualStyleBackColor = true;
            button1.Click += button1_Click;
            //
            // SectionShapeInfo18Debug
            //
            AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
            AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            ClientSize = new System.Drawing.Size(358, 865);
            Controls.Add(button1);
            Controls.Add(panel1);
            Name = "SectionShapeInfo18Debug";
            Text = "SectionShapeInfo18Debug";
            Load += SectionShapeInfo18Debug_Load;
            ResumeLayout(false);
        }
        #endregion
        private System.Windows.Forms.Panel panel1;
        private System.Windows.Forms.Button button1;
    }
}
Client/DesktopDebug/MainWindow/SectionShapeInfo18Debug.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,93 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DPumpHydr.DesktopDebug.MainWindow
{
    public partial class SectionShapeInfo18Debug : Form
    {
        public SectionShapeInfo18Debug()
        {
            InitializeComponent();
        }
        DPumpHydr.WinFrmUI.Volute.ViewModel.SectionBundleInfo sectionBundle = null;
        DPumpHydr.WinFrmUI.Volute.ctrlSectionShapeInfo18 ctrl = null;
        private void SectionShapeInfo18Debug_Load(object sender, EventArgs e)
        {
            ctrl = new DPumpHydr.WinFrmUI.Volute.ctrlSectionShapeInfo18();
            ctrl.Name ="ctrlSectionShapeInfo18";
            ctrl.Dock = DockStyle.Fill;
            this.panel1.Controls.Add(ctrl);
            //基本参数类
            DPumpHydr.WinFrmUI.Volute.ViewModel.HdrBaseInfo hdrBase = new DPumpHydr.WinFrmUI.Volute.ViewModel.HdrBaseInfo()
            {
                ShapeType = 0,
                Q = 148,
                H = 90,
                n = 2900,
                D2 = 278,
                B2 = 15,
                IsSXB = false,
            };
            //计算转速比
            hdrBase.CalcNs();
            //基圆参数
            DPumpHydr.WinFrmUI.Volute.ViewModel.GeomBaseInfo geomBase = new DPumpHydr.WinFrmUI.Volute.ViewModel.GeomBaseInfo()
            {
                D3 = 295,
                B3 = 30,
                FAI0 = 32
            };
            //初始化所有断面参数
            sectionBundle = new WinFrmUI.Volute.ViewModel.SectionBundleInfo();
            sectionBundle.ResetAllParas(hdrBase, geomBase);
            #region ä¼ å…¥
            DPumpHydr.WinFrmUI.Volute.ViewModel.SectionShapePara sectionShapePara = new DPumpHydr.WinFrmUI.Volute.ViewModel.SectionShapePara();
            //从所有断面参数中获取到单个断面的参数 ä¼ å…¥ç¬¬å‡ æ–­é¢
            sectionShapePara = sectionBundle.ToSectionShapePara(1);
            //传入控件并展示
            ctrl.SetBindingData(sectionShapePara);
            #endregion
        }
        private void button1_Click(object sender, EventArgs e)
        {
            DPumpHydr.WinFrmUI.Volute.ViewModel.SectionShapePara sectionShapePara = new WinFrmUI.Volute.ViewModel.SectionShapePara();
            string error = "";
            sectionShapePara = ctrl.GetBindingData(out error);
            //根据更新后的断面参数 æ›´æ–°æ€»æ–­é¢å‚数中对应断面的参数
            sectionBundle.FromSectionShapePara(sectionShapePara);
            if (!string.IsNullOrEmpty(error))
            {
                MessageBox.Show(error);
            }
            else
            {
                MessageBox.Show("成功获取并更新断面"+sectionShapePara.Index +"参数\r\n高度:" +sectionShapePara.H+" å·¦åœ†è§’半径:" +sectionShapePara.R_Left+" å³åœ†è§’半径:" +sectionShapePara.R_Right+" é¢ç§¯:" +sectionShapePara.SectionArea+" å·¦gama:" +sectionShapePara.Gama_Left+" å³gama:" +sectionShapePara.Gama_Right);
                MessageBox.Show("成功更新后的总断面参数\r\n速度系数:"+sectionBundle.K3
                                 +"\r\n平均流速:" + sectionBundle.V3+
                                 "\r\n断面类型:"+sectionBundle.ShapeType.ToString()+
                                 "\r\n外围的半径 ï¼š" + sectionBundle.R_out+
                                 "\r\n断面1:" +" é«˜åº¦:" +sectionBundle.H[1]+" å·¦åœ†è§’半径:" +sectionBundle.R_Left[1]+" å³åœ†è§’半径:" +sectionBundle.R_Right[1]+" é¢ç§¯:" +sectionBundle.Area[1]+" å·¦gama:" +sectionBundle.GaMa_Left[1]+" å³gama:" +sectionBundle.GaMa_Right[1]+
                                 "\r\n断面2:" +" é«˜åº¦:" +sectionBundle.H[2]+" å·¦åœ†è§’半径:" +sectionBundle.R_Left[2]+" å³åœ†è§’半径:" +sectionBundle.R_Right[2]+" é¢ç§¯:" +sectionBundle.Area[2]+" å·¦gama:" +sectionBundle.GaMa_Left[2]+" å³gama:" +sectionBundle.GaMa_Right[2]+
                                 "\r\n断面3:" +" é«˜åº¦:" +sectionBundle.H[3]+" å·¦åœ†è§’半径:" +sectionBundle.R_Left[3]+" å³åœ†è§’半径:" +sectionBundle.R_Right[3]+" é¢ç§¯:" +sectionBundle.Area[3]+" å·¦gama:" +sectionBundle.GaMa_Left[3]+" å³gama:" +sectionBundle.GaMa_Right[3]+
                                 "\r\n断面4:" +" é«˜åº¦:" +sectionBundle.H[4]+" å·¦åœ†è§’半径:" +sectionBundle.R_Left[4]+" å³åœ†è§’半径:" +sectionBundle.R_Right[4]+" é¢ç§¯:" +sectionBundle.Area[4]+" å·¦gama:" +sectionBundle.GaMa_Left[4]+" å³gama:" +sectionBundle.GaMa_Right[4]+
                                 "\r\n断面5:" +" é«˜åº¦:" +sectionBundle.H[5]+" å·¦åœ†è§’半径:" +sectionBundle.R_Left[5]+" å³åœ†è§’半径:" +sectionBundle.R_Right[5]+" é¢ç§¯:" +sectionBundle.Area[5]+" å·¦gama:" +sectionBundle.GaMa_Left[5]+" å³gama:" +sectionBundle.GaMa_Right[5]+
                                 "\r\n断面6:" +" é«˜åº¦:" +sectionBundle.H[6]+" å·¦åœ†è§’半径:" +sectionBundle.R_Left[6]+" å³åœ†è§’半径:" +sectionBundle.R_Right[6]+" é¢ç§¯:" +sectionBundle.Area[6]+" å·¦gama:" +sectionBundle.GaMa_Left[6]+" å³gama:" +sectionBundle.GaMa_Right[6]+
                                 "\r\n断面7:" +" é«˜åº¦:" +sectionBundle.H[7]+" å·¦åœ†è§’半径:" +sectionBundle.R_Left[7]+" å³åœ†è§’半径:" +sectionBundle.R_Right[7]+" é¢ç§¯:" +sectionBundle.Area[7]+" å·¦gama:" +sectionBundle.GaMa_Left[7]+" å³gama:" +sectionBundle.GaMa_Right[7]+
                                 "\r\n断面8:" +" é«˜åº¦:" +sectionBundle.H[8]+" å·¦åœ†è§’半径:" +sectionBundle.R_Left[8]+" å³åœ†è§’半径:" +sectionBundle.R_Right[8]+" é¢ç§¯:" +sectionBundle.Area[8]+" å·¦gama:" +sectionBundle.GaMa_Left[8]+" å³gama:" +sectionBundle.GaMa_Right[8]
                                 );
            }
        }
    }
}
Client/DesktopDebug/MainWindow/SectionShapeInfo18Debug.resx
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    Microsoft ResX Schema
    Version 2.0
    The primary goals of this format is to allow a simple XML format
    that is mostly human readable. The generation and parsing of the
    various data types are done through the TypeConverter classes
    associated with the data types.
    Example:
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
    There are any number of "resheader" rows that contain simple
    name/value pairs.
    Each data row contains a name, and value. The row also contains a
    type or mimetype. Type corresponds to a .NET class that support
    text/value conversion through the TypeConverter architecture.
    Classes that don't support this are serialized and stored with the
    mimetype set.
    The mimetype is used for serialized objects, and tells the
    ResXResourceReader how to depersist the object. This is currently not
    extensible. For a given mimetype the value must be set accordingly:
    Note - application/x-microsoft.net.object.binary.base64 is the format
    that the ResXResourceWriter will generate, however the reader can
    read any of the formats listed below.
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>
Client/DesktopDebug/MainWindow/SetOutflowPatasDebug.Designer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,70 @@
namespace DPumpHydr.DesktopDebug.MainWindow
{
    partial class SetOutflowPatasDebug
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;
        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }
        #region Windows Form Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            panel1 = new System.Windows.Forms.Panel();
            button1 = new System.Windows.Forms.Button();
            SuspendLayout();
            //
            // panel1
            //
            panel1.Location = new System.Drawing.Point(12, 60);
            panel1.Name = "panel1";
            panel1.Size = new System.Drawing.Size(335, 815);
            panel1.TabIndex = 0;
            //
            // button1
            //
            button1.Location = new System.Drawing.Point(239, 25);
            button1.Name = "button1";
            button1.Size = new System.Drawing.Size(98, 23);
            button1.TabIndex = 1;
            button1.Text = "获取控件参数";
            button1.UseVisualStyleBackColor = true;
            button1.Click += button1_Click;
            //
            // SetOutflowPatasDebug
            //
            AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
            AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            ClientSize = new System.Drawing.Size(358, 970);
            Controls.Add(button1);
            Controls.Add(panel1);
            Name = "SetOutflowPatasDebug";
            Text = "SetOutflowPatasDebug";
            Load += SetOutflowPatasDebug_Load;
            ResumeLayout(false);
        }
        #endregion
        private System.Windows.Forms.Panel panel1;
        private System.Windows.Forms.Button button1;
    }
}
Client/DesktopDebug/MainWindow/SetOutflowPatasDebug.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,100 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DPumpHydr.DesktopDebug.MainWindow
{
    public partial class SetOutflowPatasDebug : Form
    {
        public SetOutflowPatasDebug()
        {
            InitializeComponent();
        }
        DPumpHydr.WinFrmUI.Volute.ctrlSetOutflowParas ctrl = null;
        private void SetOutflowPatasDebug_Load(object sender, EventArgs e)
        {
            ctrl = new DPumpHydr.WinFrmUI.Volute.ctrlSetOutflowParas();
            ctrl.Name ="ctrlSetOutflowParas";
            ctrl.Dock = DockStyle.Fill;
            this.panel1.Controls.Add(ctrl);
            //基本参数类
            DPumpHydr.WinFrmUI.Volute.ViewModel.HdrBaseInfo hdrBase = new DPumpHydr.WinFrmUI.Volute.ViewModel.HdrBaseInfo()
            {
                ShapeType = 0,
                Q = 148,
                H = 90,
                n = 2900,
                D2 = 278,
                B2 = 15,
                IsSXB = false,
            };
            //计算转速比
            hdrBase.CalcNs();
            //基圆参数
            DPumpHydr.WinFrmUI.Volute.ViewModel.GeomBaseInfo geomBase = new DPumpHydr.WinFrmUI.Volute.ViewModel.GeomBaseInfo()
            {
                D3 = 295,
                B3 = 30,
                FAI0 = 32
            };
            //初始化所有断面参数
            WinFrmUI.Volute.ViewModel.SectionBundleInfo sectionBundle = new WinFrmUI.Volute.ViewModel.SectionBundleInfo();
            sectionBundle.ResetAllParas(hdrBase, geomBase);
            #region åˆå§‹åŒ–出口参数
            //出口参数
            WinFrmUI.Volute.ViewModel.OutflowParas outflowParas = null;
            //这个参数是测试时不生成2d3d模型,或者通过XML导入时使用
            ctrl.Isxml = true;
            ctrl.InitialParas(hdrBase, geomBase, sectionBundle, outflowParas);
            #endregion
        }
        private void button1_Click(object sender, EventArgs e)
        {
            WinFrmUI.Volute.ViewModel.OutflowParas outflowParas = ctrl.GetBindingData(out string error);
            if (!string.IsNullOrEmpty(error) )
            {
                MessageBox.Show(error);
            }
            else
            {
                if(outflowParas.LinkStyle == WinFrmUI.Volute.ViewModel.eOutflowLinkStyle.曲线)
                MessageBox.Show("成功获取出口参数\r\n"+"连接方式:"+ outflowParas.LinkStyle.ToString()+
                                "\r\n出口类型:"+ outflowParas.ShapeStyle.ToString()+
                                "\r\n出口直径:" + outflowParas.Dia +
                                "\r\n出口位置偏移/中心距离:" + outflowParas.Offset +
                                "\r\n出口高度/长度:" + outflowParas.Heigh +
                                "\r\n割舌半径:" + outflowParas.Septalradius+
                                "\r\n出口与曲线/圆弧之间的高度左侧" + outflowParas.H1 +
                                "\r\n出口与曲线/圆弧之间的高度右侧" + outflowParas.H2 +
                                "\r\n切线缩放量右上:" + outflowParas.Tangent_Top_Right +
                                "\r\n切线缩放量右下:" + outflowParas.Tangent_Btm_Right +
                                "\r\n切线缩放量左上:" + outflowParas.Tangent_Top_Left+
                                "\r\n切线缩放量左下:" + outflowParas.Tangent_Btm_Left
                                );
                if (outflowParas.LinkStyle == WinFrmUI.Volute.ViewModel.eOutflowLinkStyle.直线圆弧)
                    MessageBox.Show("成功获取出口参数\r\n"+"连接方式:"+ outflowParas.LinkStyle.ToString()+
                                "\r\n出口类型:"+ outflowParas.ShapeStyle.ToString()+
                                "\r\n出口直径:" + outflowParas.Dia +
                                "\r\n出口位置偏移/中心距离:" + outflowParas.Offset +
                                "\r\n出口高度/长度:" + outflowParas.Heigh +
                                "\r\n割舌半径:" + outflowParas.Septalradius+
                                "\r\n出口与曲线/圆弧之间的高度左侧" + outflowParas.H1 +
                                "\r\n出口与曲线/圆弧之间的高度右侧" + outflowParas.H2 +
                                "\r\n左侧圆弧半径:" + outflowParas.R1 +
                                "\r\n右侧圆弧半径:" + outflowParas.R2
                                );
            }
        }
}
}
Client/DesktopDebug/MainWindow/SetOutflowPatasDebug.resx
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    Microsoft ResX Schema
    Version 2.0
    The primary goals of this format is to allow a simple XML format
    that is mostly human readable. The generation and parsing of the
    various data types are done through the TypeConverter classes
    associated with the data types.
    Example:
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
    There are any number of "resheader" rows that contain simple
    name/value pairs.
    Each data row contains a name, and value. The row also contains a
    type or mimetype. Type corresponds to a .NET class that support
    text/value conversion through the TypeConverter architecture.
    Classes that don't support this are serialized and stored with the
    mimetype set.
    The mimetype is used for serialized objects, and tells the
    ResXResourceReader how to depersist the object. This is currently not
    extensible. For a given mimetype the value must be set accordingly:
    Note - application/x-microsoft.net.object.binary.base64 is the format
    that the ResXResourceWriter will generate, however the reader can
    read any of the formats listed below.
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>
Client/DesktopDebug/MainWindow/ThicknessPatasDebug.Designer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,70 @@
namespace DPumpHydr.DesktopDebug.MainWindow
{
    partial class ThicknessPatasDebug
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;
        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }
        #region Windows Form Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            panel1 = new System.Windows.Forms.Panel();
            button1 = new System.Windows.Forms.Button();
            SuspendLayout();
            //
            // panel1
            //
            panel1.Location = new System.Drawing.Point(22, 43);
            panel1.Name = "panel1";
            panel1.Size = new System.Drawing.Size(335, 808);
            panel1.TabIndex = 0;
            //
            // button1
            //
            button1.Location = new System.Drawing.Point(231, 14);
            button1.Name = "button1";
            button1.Size = new System.Drawing.Size(126, 23);
            button1.TabIndex = 1;
            button1.Text = "获取控件参数";
            button1.UseVisualStyleBackColor = true;
            button1.Click += button1_Click;
            //
            // ThicknessPatasDebug
            //
            AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
            AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            ClientSize = new System.Drawing.Size(379, 881);
            Controls.Add(button1);
            Controls.Add(panel1);
            Name = "ThicknessPatasDebug";
            Text = "ThicknessPatas";
            Load += ThicknessPatasDebug_Load;
            ResumeLayout(false);
        }
        #endregion
        private System.Windows.Forms.Panel panel1;
        private System.Windows.Forms.Button button1;
    }
}
Client/DesktopDebug/MainWindow/ThicknessPatasDebug.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,85 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DPumpHydr.DesktopDebug.MainWindow
{
    public partial class ThicknessPatasDebug : Form
    {
        public ThicknessPatasDebug()
        {
            InitializeComponent();
        }
        DPumpHydr.WinFrmUI.Volute.ctrlThicknessParas ctrl = null;
        private void ThicknessPatasDebug_Load(object sender, EventArgs e)
        {
            ctrl = new DPumpHydr.WinFrmUI.Volute.ctrlThicknessParas();
            ctrl.Name ="ctrlThicknessParas";
            ctrl.Dock = DockStyle.Fill;
            this.panel1.Controls.Add(ctrl);
            //基本参数类
            DPumpHydr.WinFrmUI.Volute.ViewModel.HdrBaseInfo hdrBase = new DPumpHydr.WinFrmUI.Volute.ViewModel.HdrBaseInfo()
            {
                ShapeType = 0,
                Q = 148,
                H = 90,
                n = 2900,
                D2 = 278,
                B2 = 15,
                IsSXB = false,
            };
            //计算转速比
            hdrBase.CalcNs();
            //基圆参数
            DPumpHydr.WinFrmUI.Volute.ViewModel.GeomBaseInfo geomBase = new DPumpHydr.WinFrmUI.Volute.ViewModel.GeomBaseInfo()
            {
                D3 = 295,
                B3 = 30,
                FAI0 = 32
            };
            WinFrmUI.Volute.ViewModel.OutflowParas outflowParas = new WinFrmUI.Volute.ViewModel.OutflowParas()
            {
                ShapeStyle = 0,
                LinkStyle = 0,
                Offset = 200,
                Heigh = 200,
                Dia = 200,
                Tangent_Top_Right = 1,
                Tangent_Btm_Right = 1,
                Tangent_Top_Left = 1,
                Tangent_Btm_Left = 1,
                H1 = 5,
                H2 = 5,
                R1 = 0,
                R2 = 0,
                Septalradius = 3
            };
            //壳体厚度
            double bodyThickness = 10;
            ctrl.InitialParas(hdrBase, geomBase, outflowParas, bodyThickness);
        }
        private void button1_Click(object sender, EventArgs e)
        {
            var bodyThickness = ctrl.GetBindingData(out string error);
            if(!string.IsNullOrEmpty(error))
            {
                MessageBox.Show(error);
            }
            else
            {
                MessageBox.Show("成功获取控件参数\r\n壳体厚度:"+bodyThickness);
            }
        }
    }
}
Client/DesktopDebug/MainWindow/ThicknessPatasDebug.resx
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    Microsoft ResX Schema
    Version 2.0
    The primary goals of this format is to allow a simple XML format
    that is mostly human readable. The generation and parsing of the
    various data types are done through the TypeConverter classes
    associated with the data types.
    Example:
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
    There are any number of "resheader" rows that contain simple
    name/value pairs.
    Each data row contains a name, and value. The row also contains a
    type or mimetype. Type corresponds to a .NET class that support
    text/value conversion through the TypeConverter architecture.
    Classes that don't support this are serialized and stored with the
    mimetype set.
    The mimetype is used for serialized objects, and tells the
    ResXResourceReader how to depersist the object. This is currently not
    extensible. For a given mimetype the value must be set accordingly:
    Note - application/x-microsoft.net.object.binary.base64 is the format
    that the ResXResourceWriter will generate, however the reader can
    read any of the formats listed below.
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>
Client/DesktopDebug/Program.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using DPumpHydr.DesktopMain;
namespace DPumpHydr.Client
{
    internal static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            //基本参数
            //Application.Run(new DPumpHydr.DesktopDebug.MainWindow.BaseInfoDebugFrm());
            //1-8断面
            //Application.Run(new DPumpHydr.DesktopDebug.MainWindow.SectionBundleInfoDebug());
            //单个断面
            //Application.Run(new DPumpHydr.DesktopDebug.MainWindow.SectionShapeInfo18Debug());
            //出口
            //Application.Run(new DPumpHydr.DesktopDebug.MainWindow.SetOutflowPatasDebug());
            //加厚
            Application.Run(new DPumpHydr.DesktopDebug.MainWindow.ThicknessPatasDebug());
            //Application.Run(new DPumpHydr.WinFrmUI.Volute.MainDialog());
        }
    }
}
Client/DesktopDebug/Properties/Resources.Designer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,143 @@
//------------------------------------------------------------------------------
// <auto-generated>
//     æ­¤ä»£ç ç”±å·¥å…·ç”Ÿæˆã€‚
//     è¿è¡Œæ—¶ç‰ˆæœ¬:4.0.30319.42000
//
//     å¯¹æ­¤æ–‡ä»¶çš„æ›´æ”¹å¯èƒ½ä¼šå¯¼è‡´ä¸æ­£ç¡®çš„行为,并且如果
//     é‡æ–°ç”Ÿæˆä»£ç ï¼Œè¿™äº›æ›´æ”¹å°†ä¼šä¸¢å¤±ã€‚
// </auto-generated>
//------------------------------------------------------------------------------
namespace DPumpHydr.DesktopMain.Properties {
    using System;
    /// <summary>
    ///   ä¸€ä¸ªå¼ºç±»åž‹çš„资源类,用于查找本地化的字符串等。
    /// </summary>
    // æ­¤ç±»æ˜¯ç”± StronglyTypedResourceBuilder
    // ç±»é€šè¿‡ç±»ä¼¼äºŽ ResGen æˆ– Visual Studio çš„工具自动生成的。
    // è‹¥è¦æ·»åŠ æˆ–ç§»é™¤æˆå‘˜ï¼Œè¯·ç¼–è¾‘ .ResX æ–‡ä»¶ï¼Œç„¶åŽé‡æ–°è¿è¡Œ ResGen
    // (以 /str ä½œä¸ºå‘½ä»¤é€‰é¡¹),或重新生成 VS é¡¹ç›®ã€‚
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    internal class Resources {
        private static global::System.Resources.ResourceManager resourceMan;
        private static global::System.Globalization.CultureInfo resourceCulture;
        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
        internal Resources() {
        }
        /// <summary>
        ///   è¿”回此类使用的缓存的 ResourceManager å®žä¾‹ã€‚
        /// </summary>
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
        internal static global::System.Resources.ResourceManager ResourceManager {
            get {
                if (object.ReferenceEquals(resourceMan, null)) {
                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DPumpHydr.DesktopMain.Properties.Resources", typeof(Resources).Assembly);
                    resourceMan = temp;
                }
                return resourceMan;
            }
        }
        /// <summary>
        ///   é‡å†™å½“前线程的 CurrentUICulture å±žæ€§ï¼Œå¯¹
        ///   ä½¿ç”¨æ­¤å¼ºç±»åž‹èµ„源类的所有资源查找执行重写。
        /// </summary>
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
        internal static global::System.Globalization.CultureInfo Culture {
            get {
                return resourceCulture;
            }
            set {
                resourceCulture = value;
            }
        }
        /// <summary>
        ///   æŸ¥æ‰¾ System.Drawing.Bitmap ç±»åž‹çš„æœ¬åœ°åŒ–资源。
        /// </summary>
        internal static System.Drawing.Bitmap AppIcon256 {
            get {
                object obj = ResourceManager.GetObject("AppIcon256", resourceCulture);
                return ((System.Drawing.Bitmap)(obj));
            }
        }
        /// <summary>
        ///   æŸ¥æ‰¾ System.Drawing.Bitmap ç±»åž‹çš„æœ¬åœ°åŒ–资源。
        /// </summary>
        internal static System.Drawing.Bitmap Book {
            get {
                object obj = ResourceManager.GetObject("Book", resourceCulture);
                return ((System.Drawing.Bitmap)(obj));
            }
        }
        /// <summary>
        ///   æŸ¥æ‰¾ System.Drawing.Bitmap ç±»åž‹çš„æœ¬åœ°åŒ–资源。
        /// </summary>
        internal static System.Drawing.Bitmap logo {
            get {
                object obj = ResourceManager.GetObject("logo", resourceCulture);
                return ((System.Drawing.Bitmap)(obj));
            }
        }
        /// <summary>
        ///   æŸ¥æ‰¾ System.Drawing.Bitmap ç±»åž‹çš„æœ¬åœ°åŒ–资源。
        /// </summary>
        internal static System.Drawing.Bitmap Search {
            get {
                object obj = ResourceManager.GetObject("Search", resourceCulture);
                return ((System.Drawing.Bitmap)(obj));
            }
        }
        /// <summary>
        ///   æŸ¥æ‰¾ System.Drawing.Bitmap ç±»åž‹çš„æœ¬åœ°åŒ–资源。
        /// </summary>
        internal static System.Drawing.Bitmap setting {
            get {
                object obj = ResourceManager.GetObject("setting", resourceCulture);
                return ((System.Drawing.Bitmap)(obj));
            }
        }
        /// <summary>
        ///   æŸ¥æ‰¾ System.Drawing.Bitmap ç±»åž‹çš„æœ¬åœ°åŒ–资源。
        /// </summary>
        internal static System.Drawing.Bitmap user {
            get {
                object obj = ResourceManager.GetObject("user", resourceCulture);
                return ((System.Drawing.Bitmap)(obj));
            }
        }
        /// <summary>
        ///   æŸ¥æ‰¾ System.Drawing.Bitmap ç±»åž‹çš„æœ¬åœ°åŒ–资源。
        /// </summary>
        internal static System.Drawing.Bitmap woke {
            get {
                object obj = ResourceManager.GetObject("woke", resourceCulture);
                return ((System.Drawing.Bitmap)(obj));
            }
        }
        /// <summary>
        ///   æŸ¥æ‰¾ System.Drawing.Bitmap ç±»åž‹çš„æœ¬åœ°åŒ–资源。
        /// </summary>
        internal static System.Drawing.Bitmap yelun {
            get {
                object obj = ResourceManager.GetObject("yelun", resourceCulture);
                return ((System.Drawing.Bitmap)(obj));
            }
        }
    }
}
Client/DesktopDebug/Properties/Resources.resx
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,145 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
    Microsoft ResX Schema
    Version 2.0
    The primary goals of this format is to allow a simple XML format
    that is mostly human readable. The generation and parsing of the
    various data types are done through the TypeConverter classes
    associated with the data types.
    Example:
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
    There are any number of "resheader" rows that contain simple
    name/value pairs.
    Each data row contains a name, and value. The row also contains a
    type or mimetype. Type corresponds to a .NET class that support
    text/value conversion through the TypeConverter architecture.
    Classes that don't support this are serialized and stored with the
    mimetype set.
    The mimetype is used for serialized objects, and tells the
    ResXResourceReader how to depersist the object. This is currently not
    extensible. For a given mimetype the value must be set accordingly:
    Note - application/x-microsoft.net.object.binary.base64 is the format
    that the ResXResourceWriter will generate, however the reader can
    read any of the formats listed below.
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  <data name="user" type="System.Resources.ResXFileRef, System.Windows.Forms">
    <value>..\Resources\user.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
  </data>
  <data name="AppIcon256" type="System.Resources.ResXFileRef, System.Windows.Forms">
    <value>..\AppIcon256.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
  </data>
  <data name="Search" type="System.Resources.ResXFileRef, System.Windows.Forms">
    <value>..\Resources\MainIcon\Search.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
  </data>
  <data name="logo" type="System.Resources.ResXFileRef, System.Windows.Forms">
    <value>..\Resources\logo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
  </data>
  <data name="yelun" type="System.Resources.ResXFileRef, System.Windows.Forms">
    <value>..\Resources\yelun.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
  </data>
  <data name="Book" type="System.Resources.ResXFileRef, System.Windows.Forms">
    <value>..\Resources\MainIcon\Book.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
  </data>
  <data name="setting" type="System.Resources.ResXFileRef, System.Windows.Forms">
    <value>..\Resources\setting.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
  </data>
  <data name="woke" type="System.Resources.ResXFileRef, System.Windows.Forms">
    <value>..\Resources\woke.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
  </data>
</root>
Client/DesktopDebug/Properties/Settings.Designer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
//     æ­¤ä»£ç ç”±å·¥å…·ç”Ÿæˆã€‚
//     è¿è¡Œæ—¶ç‰ˆæœ¬:4.0.30319.42000
//
//     å¯¹æ­¤æ–‡ä»¶çš„æ›´æ”¹å¯èƒ½ä¼šå¯¼è‡´ä¸æ­£ç¡®çš„行为,并且如果
//     é‡æ–°ç”Ÿæˆä»£ç ï¼Œè¿™äº›æ›´æ”¹å°†ä¼šä¸¢å¤±ã€‚
// </auto-generated>
//------------------------------------------------------------------------------
namespace DPumpHydr.ClientMain.Properties {
    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.11.0.0")]
    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
        public static Settings Default {
            get {
                return defaultInstance;
            }
        }
    }
}
Client/DesktopDebug/Properties/Settings.settings
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
  <Profiles>
    <Profile Name="(Default)" />
  </Profiles>
  <Settings />
</SettingsFile>
Client/DesktopDebug/Resources/AppIcon.png
Client/DesktopDebug/Resources/LoginBackgroup.jpg
Client/DesktopDebug/Resources/MainIcon/App.png
Client/DesktopDebug/Resources/MainIcon/Bag.png
Client/DesktopDebug/Resources/MainIcon/Book.png
Client/DesktopDebug/Resources/MainIcon/Books.png
Client/DesktopDebug/Resources/MainIcon/Game.png
Client/DesktopDebug/Resources/MainIcon/Headset.png
Client/DesktopDebug/Resources/MainIcon/Help.png
Client/DesktopDebug/Resources/MainIcon/Mylivn.png
Client/DesktopDebug/Resources/MainIcon/Search.png
Client/DesktopDebug/Resources/MainIcon/Shelf.png
Client/DesktopDebug/Resources/MainIcon/User.png
Client/DesktopDebug/Resources/logo.png
Client/DesktopDebug/Resources/setting.png
Client/DesktopDebug/Resources/user.png
Client/DesktopDebug/Resources/woke.png
Client/DesktopDebug/Resources/yelun.png
DPumpHydr.Desktop.sln
@@ -27,6 +27,8 @@
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DPumpHydr.WinFrmUI.RLT", "WinFrmUI\DPumpHydr.WinFrmUI.RLT\DPumpHydr.WinFrmUI.RLT.csproj", "{0DB92627-4C3F-4737-AFB3-4D1509C1E547}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DPumpHydr.DesktopDebug", "Client\DesktopDebug\DPumpHydr.DesktopDebug.csproj", "{91D10526-3F0D-C506-2E6B-3ACE88FB44A9}"
EndProject
Global
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Any CPU = Debug|Any CPU
@@ -105,6 +107,14 @@
        {0DB92627-4C3F-4737-AFB3-4D1509C1E547}.Release|Any CPU.Build.0 = Release|Any CPU
        {0DB92627-4C3F-4737-AFB3-4D1509C1E547}.Release|x64.ActiveCfg = Release|Any CPU
        {0DB92627-4C3F-4737-AFB3-4D1509C1E547}.Release|x64.Build.0 = Release|Any CPU
        {91D10526-3F0D-C506-2E6B-3ACE88FB44A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {91D10526-3F0D-C506-2E6B-3ACE88FB44A9}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {91D10526-3F0D-C506-2E6B-3ACE88FB44A9}.Debug|x64.ActiveCfg = Debug|Any CPU
        {91D10526-3F0D-C506-2E6B-3ACE88FB44A9}.Debug|x64.Build.0 = Debug|Any CPU
        {91D10526-3F0D-C506-2E6B-3ACE88FB44A9}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {91D10526-3F0D-C506-2E6B-3ACE88FB44A9}.Release|Any CPU.Build.0 = Release|Any CPU
        {91D10526-3F0D-C506-2E6B-3ACE88FB44A9}.Release|x64.ActiveCfg = Release|Any CPU
        {91D10526-3F0D-C506-2E6B-3ACE88FB44A9}.Release|x64.Build.0 = Release|Any CPU
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE
WinFrmUI/DPumpHydr.WinFrmUI.Volute/MainViewPage_ExportImport.cs
@@ -122,7 +122,7 @@
                    _ctrlSectionBundleInfo.SetBindingData(_sectionBundleInfo);
                }
                _ctrlSectionBundleInfo.ShowPage(_hdrBaseInfo, _geomBaseInfo,
                        DPumpHydr.ViewModel.eWizardStepDiretion.前进, true);
                        DPumpHydr.ViewModel.eWizardStepDiretion.前进, false);
                _ctrlSectionBundleInfo.RefreshAllSectPara(_sectionBundleInfo);
                RefreshSectShapeWhole18(_sectionBundleInfo);
                _stepTreeDockPanel.SetFocusedNode(this._stepTreeDockPanel.Step_ID_Section18_Full);
WinFrmUI/DPumpHydr.WinFrmUI.Volute/MainViewPage_½ØÃæ18.cs
@@ -69,7 +69,7 @@
            if (last_step_id > this._stepTreeDockPanel.Step_ID_Section18_Full)
                step_direction = DPumpHydr.ViewModel.eWizardStepDiretion.后退;
            _ctrlSectionBundleInfo.ShowPage(_hdrBaseInfo, _geomBaseInfo, step_direction,false);
            _ctrlSectionBundleInfo.ShowPage(_hdrBaseInfo, _geomBaseInfo, step_direction,true);
            DockStepParaCtrl(_ctrlSectionBundleInfo);
WinFrmUI/DPumpHydr.WinFrmUI.Volute/³öË®Éè¼Æ/ViewModel/OutflowParas.cs
@@ -32,18 +32,53 @@
        }
        public ViewModel.eOutflowShapeStyle ShapeStyle { get; set; } = ViewModel.eOutflowShapeStyle.未知;
        public ViewModel.eOutflowLinkStyle LinkStyle { get; set; } = ViewModel.eOutflowLinkStyle.曲线;
        /// <summary>
        /// ä¸­å¿ƒè·ç¦» å›¾ç‰‡ä¸­çš„A
        /// </summary>
        public double Offset { get; set; } //图片中的A  = 0.0;
        /// <summary>
        /// å‡ºå£é•¿åº¦ å›¾ç‰‡ä¸­L
        /// </summary>
        public double Heigh { get; set; } //图片中的L = 420.0;
        /// <summary>
        /// å‡ºå£å®½åº¦ å›¾ç‰‡ä¸­çš„D4
        /// </summary>
        public double Dia { get; set; } //图片中的D4 = 80.0;
        /// <summary>
        /// å³ä¸Šæ›²çº¿ç¼©æ”¾é‡
        /// </summary>
        public double Tangent_Top_Right { get; set; } = 1.0; //切线缩放量 = m_dTopValue;
        /// <summary>
        /// å³ä¸‹æ›²çº¿ç¼©æ”¾é‡
        /// </summary>
        public double Tangent_Btm_Right { get; set; } = 1.0; //切线缩放量 = m_dBtmValue;
        /// <summary>
        /// å·¦ä¸Šæ›²çº¿ç¼©æ”¾é‡
        /// </summary>
        public double Tangent_Top_Left { get; set; } = 1.0; //切线缩放量 = m_dTopValue;
        /// <summary>
        /// å·¦ä¸‹æ›²çº¿ç¼©æ”¾é‡
        /// </summary>
        public double Tangent_Btm_Left { get; set; } = 1.0; //切线缩放量 = m_dBtmValue;
        /// <summary>
        /// åœ†å¼§é“¾æŽ¥æ—¶R1
        /// </summary>
        public double R1 { get; set; }//圆弧连接时的R1
        /// <summary>
        /// åœ†å¼§é“¾æŽ¥æ—¶R2
        /// </summary>
        public double R2 { get; set; }//圆弧连接时的R2
        /// <summary>
        /// å‡ºå£ä¸Žæ›²çº¿æˆ–圆弧之间的高度 å·¦
        /// </summary>
        public double H1 { get; set; } //图片中的H1  = 10;
        /// <summary>
        /// å‡ºå£ä¸Žæ›²çº¿æˆ–圆弧之间的高度 å³
        /// </summary>
        public double H2 { get; set; } //图片中的H2 = 10;
        /// <summary>
        /// å‰²èˆŒåŠå¾„
        /// </summary>
        public double Septalradius { get; set; } //隔舌半径r
        public double CalR2(
WinFrmUI/DPumpHydr.WinFrmUI.Volute/³öË®Éè¼Æ/ViewModel/OutflowStyleHelper.cs
@@ -16,7 +16,7 @@
        /// <returns></returns>
        public static double GetSectStartAngle(DPumpHydr.WinFrmUI.Volute.ViewModel.eOutflowShapeStyle style)
        {
            if (style == DPumpHydr.WinFrmUI.Volute.ViewModel.eOutflowShapeStyle.侧面出口_曲线连接)
            if (style == DPumpHydr.WinFrmUI.Volute.ViewModel.eOutflowShapeStyle.侧面出口)
            {
                return  0; 
            }
WinFrmUI/DPumpHydr.WinFrmUI.Volute/³öË®Éè¼Æ/ViewModel/eOutflowStyle.cs
@@ -10,7 +10,7 @@
    {
        æœªçŸ¥=-1,
        ä¸­å¿ƒå‡ºå£ = 0,
        ä¾§é¢å‡ºå£_曲线连接 = 1,
        ä¾§é¢å‡ºå£ = 1,
        ä¾§é¢å‡ºå£_直线连接 = 2
    }
    public enum eOutflowLinkStyle
WinFrmUI/DPumpHydr.WinFrmUI.Volute/³öË®Éè¼Æ/ctrlSetOutflowParas.Designer.cs
@@ -92,7 +92,7 @@
            // comboBoxType
            // 
            comboBoxType.FormattingEnabled = true;
            comboBoxType.Items.AddRange(new object[] { "中心出口", "侧面出口(曲线链接)", "侧面出口(直线链接)" });
            comboBoxType.Items.AddRange(new object[] { "中心出口", "侧面出口", "侧面出口(直线链接)" });
            comboBoxType.Location = new System.Drawing.Point(29, 0);
            comboBoxType.Name = "comboBoxType";
            comboBoxType.Size = new System.Drawing.Size(236, 23);
WinFrmUI/DPumpHydr.WinFrmUI.Volute/³öË®Éè¼Æ/ctrlSetOutflowParas.cs
@@ -129,7 +129,7 @@
                    tabPage1.Controls.Add(_parasControlArcCenter);
                    return;
                }
                if (_sharp_type == eOutflowShapeStyle.侧面出口_曲线连接)
                if (_sharp_type == eOutflowShapeStyle.侧面出口)
                {
                    metroTile出口图片.BackgroundImage = GlobalResource.BuildImage("Central-exit.png", 878, 238);
                    _parasControlArcSide.SetA_state(true);
@@ -144,7 +144,7 @@
                    _parasControlCenter.SetA_state(false);
                    tabPage1.Controls.Add(_parasControlCenter);
                    return;
                case DPumpHydr.WinFrmUI.Volute.ViewModel.eOutflowShapeStyle.侧面出口_曲线连接:
                case DPumpHydr.WinFrmUI.Volute.ViewModel.eOutflowShapeStyle.侧面出口:
                    metroTile出口图片.BackgroundImage = GlobalResource.BuildImage("Side-exit-curve.png", 878, 238);
                    _parasControlCurve.SetA_state(true);
                    tabPage1.Controls.Add(_parasControlCurve);
@@ -203,6 +203,7 @@
                comboBoxType.SelectedIndex = (int)_sharp_type;
                if (_isxml)
                {
                    InitialOutflowStyle();
                    _isxml = false;
                }
@@ -224,7 +225,7 @@
            double outer_dia = 4.5 * Math.Pow(hdrBaseInfo.Q / 3600 / hdrBaseInfo.n, 1 / 3.0) * 1000;
            //侧面曲线
            OutflowParas outflowParas侧面曲线 = null;
            if(outflowParas != null && outflowParas.ShapeStyle == eOutflowShapeStyle.侧面出口_曲线连接)
            if(outflowParas != null && outflowParas.ShapeStyle == eOutflowShapeStyle.侧面出口)
            {
                outflowParas侧面曲线 = outflowParas;
            }
@@ -317,7 +318,7 @@
            //圆弧侧面
            OutflowParas outflowParas圆弧侧面 = null;
            if (outflowParas != null && outflowParas.ShapeStyle == eOutflowShapeStyle.侧面出口_曲线连接 && outflowParas.LinkStyle == eOutflowLinkStyle.直线圆弧)
            if (outflowParas != null && outflowParas.ShapeStyle == eOutflowShapeStyle.侧面出口 && outflowParas.LinkStyle == eOutflowLinkStyle.直线圆弧)
            {
                outflowParas圆弧侧面 = outflowParas;
            }
@@ -450,7 +451,7 @@
                        return null;
                    _outflowParas = _parasControlArcCenter.GetBindingData(out error);
                }
                if (_sharp_type == eOutflowShapeStyle.侧面出口_曲线连接)
                if (_sharp_type == eOutflowShapeStyle.侧面出口)
                {
                    if (_parasControlArcSide == null)
                        return null;
@@ -466,7 +467,7 @@
                            return null;
                        _outflowParas = _parasControlCenter.GetBindingData(out error);
                        break;
                    case DPumpHydr.WinFrmUI.Volute.ViewModel.eOutflowShapeStyle.侧面出口_曲线连接:
                    case DPumpHydr.WinFrmUI.Volute.ViewModel.eOutflowShapeStyle.侧面出口:
                        _outflowParas = _parasControlCurve.GetBindingData(out error);
                        break;
                    case DPumpHydr.WinFrmUI.Volute.ViewModel.eOutflowShapeStyle.侧面出口_直线连接:
@@ -508,7 +509,7 @@
            {
                paras2.Offset = (int)((_geomBaseInfo.D3 + _sectionBundleInfo.H[8]) / 2 + 0.5);
            }
            else if (paras3.ShapeStyle == eOutflowShapeStyle.侧面出口_曲线连接)
            else if (paras3.ShapeStyle == eOutflowShapeStyle.侧面出口)
            {
                paras3.Offset = (int)(((_geomBaseInfo.D3 / 2 + _sectionBundleInfo.H[8]) * 1.6 / 3 / 5) + 1) * 5;
            }
@@ -522,7 +523,7 @@
            {
                comboBoxType.SelectedIndex = 0;
            }
            else if (_sharp_type == DPumpHydr.WinFrmUI.Volute.ViewModel.eOutflowShapeStyle.侧面出口_曲线连接)
            else if (_sharp_type == DPumpHydr.WinFrmUI.Volute.ViewModel.eOutflowShapeStyle.侧面出口)
            {
                comboBoxType.SelectedIndex = 1;
            }
@@ -582,6 +583,10 @@
        private void RefreshModel()
        {
            string error;
            if(OnRefreshShape3D == null)
            {
                return;
            }
            var resp = OnRefreshShape3D(GetBindingData(out error));
            if (resp != null)
            {
@@ -591,7 +596,7 @@
                    {
                        _parasControlArcCenter.SetBindingData(resp);
                    }
                    else if (_sharp_type == eOutflowShapeStyle.侧面出口_曲线连接)
                    else if (_sharp_type == eOutflowShapeStyle.侧面出口)
                    {
                        _parasControlArcSide.SetBindingData(resp);
                    }
@@ -603,7 +608,7 @@
                    {
                        _parasControlLine.SetBindingData(resp);
                    }
                    else if (_sharp_type == eOutflowShapeStyle.侧面出口_曲线连接)
                    else if (_sharp_type == eOutflowShapeStyle.侧面出口)
                    {
                        _parasControlCurve.SetBindingData(resp);
                    }
@@ -642,7 +647,7 @@
            }
            else if (comboBoxType.SelectedIndex == 1)
            {
                _sharp_type = DPumpHydr.WinFrmUI.Volute.ViewModel.eOutflowShapeStyle.侧面出口_曲线连接;
                _sharp_type = DPumpHydr.WinFrmUI.Volute.ViewModel.eOutflowShapeStyle.侧面出口;
                checkBox圆弧连接.Enabled = true;
                checkBox圆弧连接.Visible = true;
                _link_type = DPumpHydr.WinFrmUI.Volute.ViewModel.eOutflowLinkStyle.曲线;
@@ -664,6 +669,7 @@
            }
            if (_isxml)
            {
                InitialOutflowStyle();
                return;
            }
            InitialOutflowStyle();
@@ -688,6 +694,7 @@
            }
            if (_isxml)
            {
                InitialOutflowStyle();
                return;
            }
WinFrmUI/DPumpHydr.WinFrmUI.Volute/¼Óºñ/ctrlThicknessParas.cs
@@ -98,7 +98,7 @@
        public Action<double> OnRefreshShape = null;
        internal double InitialParas(
        public double InitialParas(
            ViewModel.HdrBaseInfo hdrBaseInfo,
            ViewModel.GeomBaseInfo geomBaseInfo,
            ViewModel.OutflowParas outflowParas,
@@ -124,7 +124,17 @@
            mTextBoxEdit厚度.Text = thickness.ToString();
            return thickness;
        }
        public double GetBindingData(out string error)
        {
            error = null;
            if (!double.TryParse(mTextBoxEdit厚度.Text, out double thickness))
            {
                error = "厚度不是正确的格式";
                return 0;
            }
            return thickness;
        }
        internal void InitialParas(double thickness)
        {
WinFrmUI/DPumpHydr.WinFrmUI.Volute/»ù±¾²ÎÊý/ViewModel/GeomBaseInfo.cs
@@ -31,9 +31,12 @@
        //b3min=b3max=b3=0.0;
        //FAI0=FAI0min=FAI0max=0.0;
        //K3=0.0;
        /// <summary>
        /// åŸºåœ†ç›´å¾„
        /// </summary>
        public double D3 { get;set;}
        /// <summary>
        ///
        /// èœ—壳入口宽度
        /// </summary>
        public double B3 { get; set; }
        /// <summary>
WinFrmUI/DPumpHydr.WinFrmUI.Volute/»ù±¾²ÎÊý/ViewModel/HdrBaseInfo.cs
@@ -42,11 +42,26 @@
        /// å½¢çŠ¶ç±»åž‹ 0 æ—‹è½¬åž‹   1 åŒèœ—壳型  2 çŽ¯åž‹  3准旋转型
        /// </summary>
        public int ShapeType { get; set; }
        /// <summary>
        /// æµé‡
        /// </summary>
        public double Q { get; set; }
        /// <summary>
        /// æ‰¬ç¨‹
        /// </summary>
        public double H { get; set; }
        public double n { get; set; }//转速
        public double D2 { get; set; }//叶轮外径
        public double B2 { get; set; }//叶轮宽度
        /// <summary>
        /// è½¬é€Ÿ
        /// </summary>
        public double n { get; set; }
        /// <summary>
        /// å¶è½®å¤–径
        /// </summary>
        public double D2 { get; set; }
        /// <summary>
        /// å¶è½®å®½åº¦
        /// </summary>
        public double B2 { get; set; }
        /// <summary>
        /// æ˜¯å¦æ˜¯åŒå¸æ³µ
        /// </summary>
WinFrmUI/DPumpHydr.WinFrmUI.Volute/»ù±¾²ÎÊý/ctrlHdrBaseInfo.cs
@@ -158,7 +158,7 @@
            string error;
            if (!Verify(out error))
            {
                return null;
                return error;
            }
            error = null;
WinFrmUI/DPumpHydr.WinFrmUI.Volute/¶ÏÃæÉè¼Æ/ViewModel/SectionBundleInfo.cs
@@ -107,7 +107,7 @@
            return true;
        }
        /// <summary>
        /// æˆªé¢å½¢çŠ¶ç±»åž‹
        /// æˆªé¢å½¢çŠ¶ç±»åž‹  0对称 1不对称 2矩形
        /// </summary>
        public eSectionShapeType ShapeType { get; set; } = eSectionShapeType.对称;
@@ -124,24 +124,49 @@
        /// å¼€å§‹æˆªé¢ç¼–号
        /// </summary>
        public int StartSectionNumber { get; set; }
        /// <summary>
        /// å·¦ä¾§gama角度 1开始
        /// </summary>
        public List<double> GaMa_Left { get; set; }
        /// <summary>
        /// å³ä¾§gama角度 1开始
        /// </summary>
        public List<double> GaMa_Right{ get; set;}
        /// <summary>
        /// æ–­é¢é¢ç§¯ 1开始
        /// </summary>
        public List<double> Area { get; set; }
        //断面信息 
        public List<double> H { get; set; }//高度
        public double R_out { get; set; }//外围的半径
        public List<double> R_Left { get; set; }//角度1边对应的圆角半径 UG中R1
        public List<double> R_Right { get; set; }//角度2边对应的圆角半径 UG中R2
        public double BaseWidth { get; set; }//底部宽度 å°±æ˜¯B3
        public double BaseCircleRadius { get; set; }//底部圆半径 å°±æ˜¯D3/2
        /// <summary>
        /// é«˜åº¦ 1开始
        /// </summary>
        public List<double> H { get; set; }
        /// <summary>
        /// å¤–围的半径
        /// </summary>
        public double R_out { get; set; }
        /// <summary>
        /// è§’度1边对应的圆角半径 UG中R1 1开始
        /// </summary>
        public List<double> R_Left { get; set; }
        /// <summary>
        /// è§’度2边对应的圆角半径 UG中R2 1开始
        /// </summary>
        public List<double> R_Right { get; set; }
        /// <summary>
        /// åº•部宽度 å°±æ˜¯B3
        /// </summary>
        public double BaseWidth { get; set; }
        /// <summary>
        /// åº•部圆半径 å°±æ˜¯D3/2
        /// </summary>
        public double BaseCircleRadius { get; set; }
        /// <summary>
        ///
        /// ä»Žæ‰€æœ‰æ–­é¢å‚数中获取到单个断面的参数
        /// </summary>
        /// <param name="index"></param>
        /// <param name="index">第几断面</param>
        /// <returns></returns>
        public SectionShapePara ToSectionShapePara(int index)
        {
WinFrmUI/DPumpHydr.WinFrmUI.Volute/¶ÏÃæÉè¼Æ/ctrlSectionBundleInfo.cs
@@ -174,11 +174,17 @@
            _sectionBundleInfo = sectionBundle_info;
        }
        /// <summary>
        /// æ˜¾ç¤ºç•Œé¢
        /// </summary>
        /// <param name="base_info">基本参数</param>
        /// <param name="geom_info">基圆参数</param>
        /// <param name="step_direction">前进/后退</param>
        /// <param name="isRefreshModel">是否需要覆盖断面参数</param>
        public void ShowPage(
            ViewModel.HdrBaseInfo base_info,
            ViewModel.GeomBaseInfo geom_info,
            DPumpHydr.ViewModel.eWizardStepDiretion step_direction, bool isRefreshModel = true)
            DPumpHydr.ViewModel.eWizardStepDiretion step_direction, bool isRefreshModel = false)
        {
            if (step_direction == DPumpHydr.ViewModel.eWizardStepDiretion.后退)
            {
@@ -189,7 +195,7 @@
                _hdrBaseInfo = base_info;
                _geomBaseInfo = geom_info;
            }
            if (isRefreshModel)
            if (!isRefreshModel)
            {
                return;
            }
@@ -245,8 +251,6 @@
            }
            RefreshAllSectPara(_sectionBundleInfo);
            RefreshShape(_sectionBundleInfo);
        }