Shuxia Ning
2024-11-22 fb847a221b1f1286f804dea52295979abeadb8ed
曲线控件
已修改6个文件
已添加4个文件
1139 ■■■■ 文件已修改
Desktop/HStation.Desktop.PBS.Core/MainForm.Designer.cs 200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Desktop/HStation.Desktop.PBS.Core/MainForm.cs 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Desktop/HStation.Desktop.PBS.Core/MainForm.resx 174 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/HStation.WinFrmUI.PhartRelation.Core.csproj 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/03-calc/SinglePumpCalcCtrl.Designer.cs 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/03-calc/SinglePumpCalcCtrl.cs 278 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/03-calc/SinglePumpCalcCtrl.resx 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/03-calc/SinglePumpCalcViewModel.cs 258 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj.user 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Desktop/HStation.Desktop.PBS.Core/MainForm.Designer.cs
@@ -30,18 +30,8 @@
        {
            components = new System.ComponentModel.Container();
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
            DevExpress.Utils.SuperToolTip superToolTip4 = new DevExpress.Utils.SuperToolTip();
            DevExpress.Utils.ToolTipItem toolTipItem4 = new DevExpress.Utils.ToolTipItem();
            DevExpress.Utils.SuperToolTip superToolTip5 = new DevExpress.Utils.SuperToolTip();
            DevExpress.Utils.ToolTipItem toolTipItem5 = new DevExpress.Utils.ToolTipItem();
            DevExpress.Utils.SuperToolTip superToolTip6 = new DevExpress.Utils.SuperToolTip();
            DevExpress.Utils.ToolTipItem toolTipItem6 = new DevExpress.Utils.ToolTipItem();
            tileNavPane = new DevExpress.XtraBars.Navigation.TileNavPane();
            nbTitle = new DevExpress.XtraBars.Navigation.NavButton();
            navBtnPrevious = new DevExpress.XtraBars.Navigation.NavButton();
            navBtnCurrent = new DevExpress.XtraBars.Navigation.NavButton();
            navBtnNext = new DevExpress.XtraBars.Navigation.NavButton();
            navBtnPattern = new DevExpress.XtraBars.Navigation.NavButton();
            nbPlaceMgr = new DevExpress.XtraBars.Navigation.NavButton();
            nbWEMgr = new DevExpress.XtraBars.Navigation.NavButton();
            nbAssetManage = new DevExpress.XtraBars.Navigation.NavButton();
@@ -59,31 +49,39 @@
            barDockControlBottom = new DevExpress.XtraBars.BarDockControl();
            barDockControlLeft = new DevExpress.XtraBars.BarDockControl();
            barDockControlRight = new DevExpress.XtraBars.BarDockControl();
            dockManager1 = new DevExpress.XtraBars.Docking.DockManager(components);
            barDockingMenuItem1 = new DevExpress.XtraBars.BarDockingMenuItem();
            tabbedView1 = new DevExpress.XtraBars.Docking2010.Views.Tabbed.TabbedView(components);
            flyoutPanel1 = new DevExpress.Utils.FlyoutPanel();
            flyoutPanelControl1 = new DevExpress.Utils.FlyoutPanelControl();
            svgImg32 = new DevExpress.Utils.SvgImageCollection(components);
            dockManager1 = new DevExpress.XtraBars.Docking.DockManager(components);
            propertyGridControl1 = new DevExpress.XtraVerticalGrid.PropertyGridControl();
            toolboxControl1 = new DevExpress.XtraToolbox.ToolboxControl();
            toolboxItem3 = new DevExpress.XtraToolbox.ToolboxItem();
            toolboxItem5 = new DevExpress.XtraToolbox.ToolboxItem();
            toolboxGroup1 = new DevExpress.XtraToolbox.ToolboxGroup();
            toolboxItem1 = new DevExpress.XtraToolbox.ToolboxItem();
            toolboxItem2 = new DevExpress.XtraToolbox.ToolboxItem();
            toolboxItem4 = new DevExpress.XtraToolbox.ToolboxItem();
            toolboxItem6 = new DevExpress.XtraToolbox.ToolboxItem();
            toolboxItem7 = new DevExpress.XtraToolbox.ToolboxItem();
            ((System.ComponentModel.ISupportInitialize)tileNavPane).BeginInit();
            ((System.ComponentModel.ISupportInitialize)documentManager1).BeginInit();
            ((System.ComponentModel.ISupportInitialize)barManager1).BeginInit();
            ((System.ComponentModel.ISupportInitialize)dockManager1).BeginInit();
            ((System.ComponentModel.ISupportInitialize)tabbedView1).BeginInit();
            ((System.ComponentModel.ISupportInitialize)flyoutPanel1).BeginInit();
            flyoutPanel1.SuspendLayout();
            ((System.ComponentModel.ISupportInitialize)flyoutPanelControl1).BeginInit();
            ((System.ComponentModel.ISupportInitialize)svgImg32).BeginInit();
            ((System.ComponentModel.ISupportInitialize)dockManager1).BeginInit();
            ((System.ComponentModel.ISupportInitialize)propertyGridControl1).BeginInit();
            SuspendLayout();
            // 
            // tileNavPane
            // 
            tileNavPane.AllowGlyphSkinning = true;
            tileNavPane.ButtonPadding = new Padding(10);
            tileNavPane.Buttons.Add(nbTitle);
            tileNavPane.Buttons.Add(navBtnPrevious);
            tileNavPane.Buttons.Add(navBtnCurrent);
            tileNavPane.Buttons.Add(navBtnNext);
            tileNavPane.Buttons.Add(navBtnPattern);
            tileNavPane.Buttons.Add(nbPlaceMgr);
            tileNavPane.Buttons.Add(nbWEMgr);
            tileNavPane.Buttons.Add(nbAssetManage);
@@ -102,9 +100,9 @@
            tileNavPane.DefaultCategory.Tile.DropDownOptions.BeakColor = Color.Empty;
            tileNavPane.Dock = DockStyle.Top;
            tileNavPane.Location = new Point(0, 0);
            tileNavPane.Margin = new Padding(4, 5, 4, 5);
            tileNavPane.Margin = new Padding(0);
            tileNavPane.Name = "tileNavPane";
            tileNavPane.Size = new Size(2087, 83);
            tileNavPane.Size = new Size(2087, 70);
            tileNavPane.TabIndex = 0;
            tileNavPane.Text = "tileNavPane1";
            tileNavPane.ElementClick += tileNavPane_ElementClick;
@@ -117,64 +115,6 @@
            nbTitle.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("nbTitle.ImageOptions.SvgImage");
            nbTitle.Name = "nbTitle";
            nbTitle.ElementClick += nbTitle_ElementClick;
            //
            // navBtnPrevious
            //
            navBtnPrevious.Alignment = DevExpress.XtraBars.Navigation.NavButtonAlignment.Left;
            navBtnPrevious.Caption = null;
            navBtnPrevious.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("navBtnPrevious.ImageOptions.SvgImage");
            navBtnPrevious.Name = "navBtnPrevious";
            toolTipItem4.Text = "后退";
            superToolTip4.Items.Add(toolTipItem4);
            navBtnPrevious.SuperTip = superToolTip4;
            navBtnPrevious.Visible = false;
            navBtnPrevious.ElementClick += navBtnPrevious_ElementClick;
            //
            // navBtnCurrent
            //
            navBtnCurrent.Alignment = DevExpress.XtraBars.Navigation.NavButtonAlignment.Left;
            navBtnCurrent.Appearance.BackColor = Color.FromArgb(255, 128, 0);
            navBtnCurrent.Appearance.ForeColor = Color.White;
            navBtnCurrent.Appearance.Options.UseBackColor = true;
            navBtnCurrent.Appearance.Options.UseForeColor = true;
            navBtnCurrent.AppearanceDisabled.BackColor = Color.FromArgb(255, 128, 0);
            navBtnCurrent.AppearanceDisabled.ForeColor = Color.White;
            navBtnCurrent.AppearanceDisabled.Options.UseBackColor = true;
            navBtnCurrent.AppearanceDisabled.Options.UseForeColor = true;
            navBtnCurrent.AppearanceHovered.BackColor = Color.FromArgb(255, 128, 0);
            navBtnCurrent.AppearanceHovered.ForeColor = Color.White;
            navBtnCurrent.AppearanceHovered.Options.UseBackColor = true;
            navBtnCurrent.AppearanceHovered.Options.UseForeColor = true;
            navBtnCurrent.AppearanceSelected.BackColor = Color.FromArgb(255, 128, 0);
            navBtnCurrent.AppearanceSelected.ForeColor = Color.White;
            navBtnCurrent.AppearanceSelected.Options.UseBackColor = true;
            navBtnCurrent.AppearanceSelected.Options.UseForeColor = true;
            navBtnCurrent.Caption = "首页";
            navBtnCurrent.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("navBtnCurrent.ImageOptions.SvgImage");
            navBtnCurrent.Name = "navBtnCurrent";
            //
            // navBtnNext
            //
            navBtnNext.Alignment = DevExpress.XtraBars.Navigation.NavButtonAlignment.Left;
            navBtnNext.Caption = null;
            navBtnNext.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("navBtnNext.ImageOptions.SvgImage");
            navBtnNext.Name = "navBtnNext";
            toolTipItem5.Text = "前进";
            superToolTip5.Items.Add(toolTipItem5);
            navBtnNext.SuperTip = superToolTip5;
            navBtnNext.Visible = false;
            navBtnNext.ElementClick += navBtnNext_ElementClick;
            //
            // navBtnPattern
            //
            navBtnPattern.Alignment = DevExpress.XtraBars.Navigation.NavButtonAlignment.Left;
            navBtnPattern.Caption = null;
            navBtnPattern.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("navBtnPattern.ImageOptions.SvgImage");
            navBtnPattern.Name = "navBtnPattern";
            toolTipItem6.Text = "模式切换";
            superToolTip6.Items.Add(toolTipItem6);
            navBtnPattern.SuperTip = superToolTip6;
            navBtnPattern.ElementClick += navBtnPattern_ElementClick;
            // 
            // nbPlaceMgr
            // 
@@ -330,6 +270,12 @@
            barDockControlRight.Margin = new Padding(4, 5, 4, 5);
            barDockControlRight.Size = new Size(0, 1085);
            // 
            // dockManager1
            //
            dockManager1.Form = this;
            dockManager1.MenuManager = barManager1;
            dockManager1.TopZIndexControls.AddRange(new string[] { "DevExpress.XtraBars.BarDockControl", "DevExpress.XtraBars.StandaloneBarDockControl", "System.Windows.Forms.MenuStrip", "System.Windows.Forms.StatusStrip", "System.Windows.Forms.StatusBar", "DevExpress.XtraBars.Ribbon.RibbonStatusBar", "DevExpress.XtraBars.Ribbon.RibbonControl", "DevExpress.XtraBars.Navigation.OfficeNavigationBar", "DevExpress.XtraBars.Navigation.TileNavPane", "DevExpress.XtraBars.TabFormControl", "DevExpress.XtraBars.FluentDesignSystem.FluentDesignFormControl", "DevExpress.XtraBars.ToolbarForm.ToolbarFormControl" });
            //
            // barDockingMenuItem1
            // 
            barDockingMenuItem1.Caption = "Window";
@@ -338,7 +284,6 @@
            // 
            // tabbedView1
            // 
            tabbedView1.DocumentGroupProperties.ShowTabHeader = false;
            tabbedView1.DocumentProperties.AllowPin = true;
            tabbedView1.Style = DevExpress.XtraBars.Docking2010.Views.DockingViewStyle.Light;
            tabbedView1.DocumentSelected += tabbedView1_DocumentSelected;
@@ -391,19 +336,93 @@
            svgImg32.Add("GuestUser.svg", (DevExpress.Utils.Svg.SvgImage)resources.GetObject("svgImg32.GuestUser.svg"));
            svgImg32.Add("PassiveAuthentication.svg", (DevExpress.Utils.Svg.SvgImage)resources.GetObject("svgImg32.PassiveAuthentication.svg"));
            // 
            // dockManager1
            // propertyGridControl1
            // 
            dockManager1.Form = this;
            dockManager1.MenuManager = barManager1;
            dockManager1.TopZIndexControls.AddRange(new string[] { "DevExpress.XtraBars.BarDockControl", "DevExpress.XtraBars.StandaloneBarDockControl", "System.Windows.Forms.MenuStrip", "System.Windows.Forms.StatusStrip", "System.Windows.Forms.StatusBar", "DevExpress.XtraBars.Ribbon.RibbonStatusBar", "DevExpress.XtraBars.Ribbon.RibbonControl", "DevExpress.XtraBars.Navigation.OfficeNavigationBar", "DevExpress.XtraBars.Navigation.TileNavPane", "DevExpress.XtraBars.TabFormControl", "DevExpress.XtraBars.FluentDesignSystem.FluentDesignFormControl", "DevExpress.XtraBars.ToolbarForm.ToolbarFormControl" });
            propertyGridControl1.Dock = DockStyle.Right;
            propertyGridControl1.Location = new Point(1487, 70);
            propertyGridControl1.MenuManager = barManager1;
            propertyGridControl1.Name = "propertyGridControl1";
            propertyGridControl1.OptionsView.AllowReadOnlyRowAppearance = DevExpress.Utils.DefaultBoolean.True;
            propertyGridControl1.SelectedObject = toolboxControl1;
            propertyGridControl1.Size = new Size(600, 1015);
            propertyGridControl1.TabIndex = 11;
            //
            // toolboxControl1
            //
            toolboxControl1.Dock = DockStyle.Left;
            toolboxControl1.Groups.Add(toolboxGroup1);
            toolboxControl1.Location = new Point(0, 70);
            toolboxControl1.Name = "toolboxControl1";
            toolboxControl1.OptionsView.ColumnCount = 1;
            toolboxControl1.SelectedGroup = toolboxGroup1;
            toolboxControl1.SelectedGroupIndex = 0;
            toolboxControl1.Size = new Size(197, 1015);
            toolboxControl1.TabIndex = 12;
            //
            // toolboxItem3
            //
            toolboxItem3.Caption = "12";
            toolboxItem3.Name = "toolboxItem3";
            //
            // toolboxItem5
            //
            toolboxItem5.Caption = "ToolboxItem";
            toolboxItem5.Name = "toolboxItem5";
            //
            // toolboxGroup1
            //
            toolboxGroup1.Caption = "菜单";
            toolboxGroup1.Items.Add(toolboxItem1);
            toolboxGroup1.Items.Add(toolboxItem2);
            toolboxGroup1.Items.Add(toolboxItem4);
            toolboxGroup1.Items.Add(toolboxItem6);
            toolboxGroup1.Items.Add(toolboxItem7);
            toolboxGroup1.Name = "toolboxGroup1";
            //
            // toolboxItem1
            //
            toolboxItem1.Caption = "基础数据";
            toolboxItem1.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("toolboxItem1.ImageOptions.SvgImage");
            toolboxItem1.ImageOptions.SvgImageSize = new Size(24, 24);
            toolboxItem1.Name = "toolboxItem1";
            //
            // toolboxItem2
            //
            toolboxItem2.Caption = "快速建模";
            toolboxItem2.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("toolboxItem2.ImageOptions.SvgImage");
            toolboxItem2.ImageOptions.SvgImageSize = new Size(24, 24);
            toolboxItem2.Name = "toolboxItem2";
            //
            // toolboxItem4
            //
            toolboxItem4.Caption = "模型分析";
            toolboxItem4.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("toolboxItem4.ImageOptions.SvgImage");
            toolboxItem4.ImageOptions.SvgImageSize = new Size(24, 24);
            toolboxItem4.Name = "toolboxItem4";
            //
            // toolboxItem6
            //
            toolboxItem6.Caption = "模型评价";
            toolboxItem6.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("toolboxItem6.ImageOptions.SvgImage");
            toolboxItem6.ImageOptions.SvgImageSize = new Size(24, 24);
            toolboxItem6.Name = "toolboxItem6";
            //
            // toolboxItem7
            //
            toolboxItem7.Caption = "智能硬件";
            toolboxItem7.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("toolboxItem7.ImageOptions.SvgImage");
            toolboxItem7.ImageOptions.SvgImageSize = new Size(24, 24);
            toolboxItem7.Name = "toolboxItem7";
            // 
            // MainForm
            // 
            AutoScaleDimensions = new SizeF(10F, 22F);
            AutoScaleMode = AutoScaleMode.Font;
            ClientSize = new Size(2087, 1131);
            Controls.Add(flyoutPanel1);
            Controls.Add(toolboxControl1);
            Controls.Add(propertyGridControl1);
            Controls.Add(tileNavPane);
            Controls.Add(flyoutPanel1);
            Controls.Add(barDockControlLeft);
            Controls.Add(barDockControlRight);
            Controls.Add(barDockControlBottom);
@@ -420,12 +439,13 @@
            ((System.ComponentModel.ISupportInitialize)tileNavPane).EndInit();
            ((System.ComponentModel.ISupportInitialize)documentManager1).EndInit();
            ((System.ComponentModel.ISupportInitialize)barManager1).EndInit();
            ((System.ComponentModel.ISupportInitialize)dockManager1).EndInit();
            ((System.ComponentModel.ISupportInitialize)tabbedView1).EndInit();
            ((System.ComponentModel.ISupportInitialize)flyoutPanel1).EndInit();
            flyoutPanel1.ResumeLayout(false);
            ((System.ComponentModel.ISupportInitialize)flyoutPanelControl1).EndInit();
            ((System.ComponentModel.ISupportInitialize)svgImg32).EndInit();
            ((System.ComponentModel.ISupportInitialize)dockManager1).EndInit();
            ((System.ComponentModel.ISupportInitialize)propertyGridControl1).EndInit();
            ResumeLayout(false);
            PerformLayout();
        }
@@ -455,11 +475,17 @@
        private DevExpress.Utils.SvgImageCollection svgImg32;
        private DevExpress.XtraBars.Navigation.NavButton nbAssetManage;
        private DevExpress.XtraBars.Navigation.NavButton nbSystemConfig;
        private DevExpress.XtraBars.Navigation.NavButton navBtnCurrent;
        private DevExpress.XtraBars.Navigation.NavButton navBtnPrevious;
        private DevExpress.XtraBars.Navigation.NavButton navBtnNext;
        private DevExpress.XtraBars.Navigation.NavButton nbAuthConfig;
        private DevExpress.XtraBars.Navigation.NavButton navBtnPattern;
        private DevExpress.XtraBars.Docking.DockManager dockManager1;
        private DevExpress.XtraVerticalGrid.PropertyGridControl propertyGridControl1;
        private DevExpress.XtraToolbox.ToolboxControl toolboxControl1;
        private DevExpress.XtraToolbox.ToolboxGroup toolboxGroup1;
        private DevExpress.XtraToolbox.ToolboxItem toolboxItem1;
        private DevExpress.XtraToolbox.ToolboxItem toolboxItem2;
        private DevExpress.XtraToolbox.ToolboxItem toolboxItem4;
        private DevExpress.XtraToolbox.ToolboxItem toolboxItem6;
        private DevExpress.XtraToolbox.ToolboxItem toolboxItem7;
        private DevExpress.XtraToolbox.ToolboxItem toolboxItem3;
        private DevExpress.XtraToolbox.ToolboxItem toolboxItem5;
    }
}
Desktop/HStation.Desktop.PBS.Core/MainForm.cs
@@ -15,7 +15,6 @@
        public MainForm()
        {
            InitializeComponent();
        }
        #region TileNavPane ç›¸å…³å¤„理
@@ -147,7 +146,12 @@
                                };
                                if(!IsExistPage(guid,true))
                                {
                                    CreatePage(new PlaceMgrPage(),guid);
                                    var test=new PlaceMgrPage();
                                    test.PageGuid=guid;
                                    test.PageTitle.Caption="场所建筑";
                                    test.PageTitle.HeaderSvgImage=svgImg32[1];
                                    test.PageTitle.SvgImageSize=new Size(20,20);
                                    CreatePage(test,guid);
                                }
                            }
                        },
@@ -562,8 +566,7 @@
            {
                if (!this.tabbedView1.DocumentGroupProperties.ShowTabHeader)
                {
                    this.navBtnPrevious.Visible = true;
                    this.navBtnNext.Visible = true;
                }
            }
        }
@@ -576,8 +579,7 @@
            {
                return;
            }
            this.navBtnCurrent.ImageOptions.SvgImage = page.PageTitle.HeaderSvgImage;
            this.navBtnCurrent.Caption = page.PageTitle.Caption;
        }
        //关闭 æ­¤æ—¶æŽ§ä»¶å·²ç»ä¸ºç©º
@@ -881,23 +883,7 @@
            this.tabbedView1.Controller.SelectNextTab(true);
        }
        //模式切换
        private void navBtnPattern_ElementClick(object sender, NavElementEventArgs e)
        {
            if (this.tabbedView1.DocumentGroupProperties.ShowTabHeader)
            {
                this.navBtnPrevious.Visible = true;
                this.navBtnCurrent.Visible = true;
                this.navBtnNext.Visible = true;
            }
            else
            {
                this.navBtnPrevious.Visible = false;
                this.navBtnCurrent.Visible = false;
                this.navBtnNext.Visible = false;
            }
            this.tabbedView1.DocumentGroupProperties.ShowTabHeader = !this.tabbedView1.DocumentGroupProperties.ShowTabHeader;
        }
    }
Desktop/HStation.Desktop.PBS.Core/MainForm.resx
@@ -122,102 +122,15 @@
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAEgEAAAC77u/
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z
        ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5HcmVlbntmaWxsOiMwMzlD
        MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
        Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQoJLnN0MntkaXNwbGF5Om5vbmU7fQoJLnN0M3tk
        aXNwbGF5OmlubGluZTtmaWxsOiNGRkIxMTU7fQoJLnN0NHtkaXNwbGF5OmlubGluZTt9Cgkuc3Q1e2Rp
        c3BsYXk6aW5saW5lO29wYWNpdHk6MC43NTt9Cgkuc3Q2e2Rpc3BsYXk6aW5saW5lO29wYWNpdHk6MC41
        O30KCS5zdDd7ZGlzcGxheTppbmxpbmU7ZmlsbDojMDM5QzIzO30KCS5zdDh7ZGlzcGxheTppbmxpbmU7
        ZmlsbDojRDExQzFDO30KCS5zdDl7ZGlzcGxheTppbmxpbmU7ZmlsbDojMTE3N0Q3O30KCS5zdDEwe2Rp
        c3BsYXk6aW5saW5lO2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU+DQogIDxnIGlkPSJEYXNoYm9hcmQiPg0K
        ICAgIDxwYXRoIGQ9Ik0yNi4zLDUuMUwxNi40LDE1bDkuOSw5LjljMi4zLTIuNiwzLjctNi4xLDMuNy05
        LjlTMjguNiw3LjgsMjYuMyw1LjF6IiBjbGFzcz0iQmx1ZSIgLz4NCiAgICA8cGF0aCBkPSJNMTQsMTZ2
        LTF2LTAuNEwyNC45LDMuN0MyMi4yLDEuNCwxOC44LDAsMTUsMEM2LjcsMCwwLDYuNywwLDE1YzAsNy45
        LDYuMiwxNC40LDE0LDE0LjlWMTZ6IiBjbGFzcz0iUmVkIiAvPg0KICAgIDxwYXRoIGQ9Ik0xNiwyOS45
        YzMuNC0wLjIsNi41LTEuNiw4LjktMy43TDE2LDE3LjRWMjkuOXoiIGNsYXNzPSJZZWxsb3ciIC8+DQog
        IDwvZz4NCjwvc3ZnPgs=
</value>
  </data>
  <data name="navBtnPrevious.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAIkCAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ
        LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuQmx1ZXtmaWxsOiMxMTc3
        RDc7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9CgkuR3JlZW57ZmlsbDojMDM5QzIzO30KCS5zdDB7b3Bh
        Y2l0eTowLjc1O30KCS5zdDF7b3BhY2l0eTowLjU7fQoJLnN0MntvcGFjaXR5OjAuMjU7fQoJLnN0M3tm
        aWxsOiNGRkIxMTU7fQo8L3N0eWxlPg0KICA8ZyAvPg0KICA8ZyBpZD0iVW5kb18xXyI+DQogICAgPHBh
        dGggZD0iTTE0LDEyVjkuNlY2TDQsMTZsMTAsMTB2LTZjNy43LDAsMTQsMi43LDE0LDZDMjgsMTguMywy
        MS43LDEyLDE0LDEyeiIgY2xhc3M9IkJsdWUiIC8+DQogIDwvZz4NCjwvc3ZnPgs=
</value>
  </data>
  <data name="navBtnCurrent.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAIIDAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z
        ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5HcmVlbntmaWxsOiMwMzlD
        MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
        Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQoJLnN0MntkaXNwbGF5Om5vbmU7fQoJLnN0M3tk
        aXNwbGF5OmlubGluZTtmaWxsOiNGRkIxMTU7fQoJLnN0NHtkaXNwbGF5OmlubGluZTt9Cgkuc3Q1e2Rp
        c3BsYXk6aW5saW5lO29wYWNpdHk6MC43NTt9Cgkuc3Q2e2Rpc3BsYXk6aW5saW5lO29wYWNpdHk6MC41
        O30KCS5zdDd7ZGlzcGxheTppbmxpbmU7ZmlsbDojMDM5QzIzO30KCS5zdDh7ZGlzcGxheTppbmxpbmU7
        ZmlsbDojRDExQzFDO30KCS5zdDl7ZGlzcGxheTppbmxpbmU7ZmlsbDojMTE3N0Q3O30KCS5zdDEwe2Rp
        c3BsYXk6aW5saW5lO2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU+DQogIDxnIGlkPSJBZGRyZXNzIj4NCiAg
        ICA8cG9seWdvbiBwb2ludHM9IjgsMjggOCwxOCAyLDE4IDE2LDQgMzAsMTggMjQsMTggMjQsMjggMTgs
        MjggMTgsMTggMTQsMTggMTQsMjggICIgY2xhc3M9IkJsdWUiIC8+DQogIDwvZz4NCjwvc3ZnPgs=
</value>
  </data>
  <data name="navBtnNext.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAIYCAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ
        LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuQmx1ZXtmaWxsOiMxMTc3
        RDc7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9CgkuR3JlZW57ZmlsbDojMDM5QzIzO30KCS5zdDB7b3Bh
        Y2l0eTowLjc1O30KCS5zdDF7b3BhY2l0eTowLjU7fQoJLnN0MntvcGFjaXR5OjAuMjU7fQoJLnN0M3tm
        aWxsOiNGRkIxMTU7fQo8L3N0eWxlPg0KICA8ZyAvPg0KICA8ZyBpZD0iUmVkb18xXyI+DQogICAgPHBh
        dGggZD0iTTI4LDE2TDE4LDZ2My42VjEyYy03LjcsMC0xNCw2LjMtMTQsMTRjMC0zLjMsNi4zLTYsMTQt
        NnY2TDI4LDE2eiIgY2xhc3M9IkJsdWUiIC8+DQogIDwvZz4NCjwvc3ZnPgs=
</value>
  </data>
  <data name="navBtnPattern.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAJYCAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMzU3NUJCO30KCS5C
        bGFja3tmaWxsOiM3MzczNzQ7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9CgkuWWVsbG93e2ZpbGw6I0ZD
        QjAxQjt9CgkuUmVke2ZpbGw6I0QwMjAyNzt9CgkuR3JlZW57ZmlsbDojMTI5QzQ5O30KCS5zdDB7b3Bh
        Y2l0eTowLjU7fQo8L3N0eWxlPg0KICA8cGF0aCBkPSJNMzEsMkgxMWMtMC41LDAtMSwwLjUtMSwxdjlo
        MlY0aDE4djI0SDEydi04aC0ydjljMCwwLjUsMC41LDEsMSwxaDIwYzAuNSwwLDEtMC41LDEtMVYzQzMy
        LDIuNSwzMS41LDIsMzEsMnogICIgY2xhc3M9IkJsYWNrIiAvPg0KICA8cG9seWdvbiBwb2ludHM9IjE4
        LDE0IDgsMTQgOCw4IDAsMTYgOCwyNCA4LDE4IDE4LDE4ICIgY2xhc3M9IkJsdWUiIC8+DQo8L3N2Zz4L
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz
        MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy
        NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9
        Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+7rCVPC90ZXh0
        Pg0KPC9zdmc+Cw==
</value>
  </data>
  <data name="nbPlaceMgr.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
@@ -422,6 +335,81 @@
  <metadata name="documentManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>17, 17</value>
  </metadata>
  <data name="toolboxItem1.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz
        MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy
        NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9
        Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+7qmKPC90ZXh0
        Pg0KPC9zdmc+Cw==
</value>
  </data>
  <data name="toolboxItem2.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz
        MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy
        NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9
        Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+7q6dPC90ZXh0
        Pg0KPC9zdmc+Cw==
</value>
  </data>
  <data name="toolboxItem4.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz
        MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy
        NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9
        Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+7qWjPC90ZXh0
        Pg0KPC9zdmc+Cw==
</value>
  </data>
  <data name="toolboxItem6.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz
        MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy
        NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9
        Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+7qWMPC90ZXh0
        Pg0KPC9zdmc+Cw==
</value>
  </data>
  <data name="toolboxItem7.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALABAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAz
        MiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkJLkJsYWNrCgkJewoJCQlmaWxsOiM3Mjcy
        NzI7IAoJCQlmb250LWZhbWlseTonZHgtZm9udC1pY29ucyc7IAoJCQlmb250LXNpemU6MzJweDsKCQl9
        Cgk8L3N0eWxlPg0KICA8dGV4dCB4PSIwcHgiIHk9IjMycHgiIGNsYXNzPSJCbGFjayI+7qWkPC90ZXh0
        Pg0KPC9zdmc+Cw==
</value>
  </data>
  <metadata name="barManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>259, 17</value>
  </metadata>
WinFrmUI/HStation.WinFrmUI.PhartRelation.Core/HStation.WinFrmUI.PhartRelation.Core.csproj
@@ -77,6 +77,9 @@
      <AutoGen>True</AutoGen>
      <DependentUpon>Resources.resx</DependentUpon>
    </Compile>
    <Compile Update="SinglePumpAnalyDlg.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Update="XhsProjectUserControl.cs">
      <SubType>UserControl</SubType>
    </Compile>
WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/03-calc/SinglePumpCalcCtrl.Designer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,65 @@
namespace HStation.WinFrmUI.Xhs
{
    partial class SinglePumpCalcCtrl
    {
        /// <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()
        {
            pumpVariableSpeedChart1 = new Yw.WinFrmUI.Phart.PumpVariableSpeedChart();
            ribbonPage2 = new DevExpress.XtraBars.Ribbon.RibbonPage();
            SuspendLayout();
            //
            // pumpVariableSpeedChart1
            //
            pumpVariableSpeedChart1.Dock = DockStyle.Fill;
            pumpVariableSpeedChart1.LineNameShowHz = false;
            pumpVariableSpeedChart1.LineNameVisible = true;
            pumpVariableSpeedChart1.LineVisible = false;
            pumpVariableSpeedChart1.Location = new Point(0, 0);
            pumpVariableSpeedChart1.Name = "pumpVariableSpeedChart1";
            pumpVariableSpeedChart1.Size = new Size(1400, 1022);
            pumpVariableSpeedChart1.TabIndex = 5;
            //
            // ribbonPage2
            //
            ribbonPage2.Name = "ribbonPage2";
            ribbonPage2.Text = "ribbonPage2";
            //
            // SinglePumpCalcCtrl
            //
            AutoScaleDimensions = new SizeF(10F, 22F);
            AutoScaleMode = AutoScaleMode.Font;
            Controls.Add(pumpVariableSpeedChart1);
            Name = "SinglePumpCalcCtrl";
            Size = new Size(1400, 1022);
            ResumeLayout(false);
        }
        #endregion
        private Yw.WinFrmUI.Phart.PumpVariableSpeedChart pumpVariableSpeedChart1;
        private DevExpress.XtraBars.Ribbon.RibbonPage ribbonPage2;
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/03-calc/SinglePumpCalcCtrl.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,278 @@
using HStation.WinFrmUI.PhartRelation;
using SqlSugar;
using Yw.WinFrmUI.Phart;
namespace HStation.WinFrmUI.Xhs
{
    public partial class SinglePumpCalcCtrl : XtraUserControl
    {
        public SinglePumpCalcCtrl()
        {
            InitializeComponent();
            InitChart();
        }
        private List<SinglePumpCalcViewModel> _list = null;
        #region Init
        private void InitChart()
        {
            this.pumpVariableSpeedChart1.LineVisible = true;
            this.pumpVariableSpeedChart1.LineNameShowHz = true;
            this.pumpVariableSpeedChart1.SetEasyChart();
            this.pumpVariableSpeedChart1.AddBySpeedEvent += () =>
            {
                AddBySpeed();
            };
            this.pumpVariableSpeedChart1.AddByHzEvent += () =>
            {
                AddByHz();
            };
            this.pumpVariableSpeedChart1.AddByPointEvent += () =>
            {
                AddByPoint();
            };
        }
        private void AddBySpeed()
        {
            if (_list == null || _list.Count < 1)
            {
                return;
            }
            var index = _list.Count;
            var vm_def = _list.First();
            var dlg = new SetValueDlg();
            dlg.SetBindingData(vm_def.RatedSpeed);
            dlg.VerifyValueChanged += (speed) =>
            {
                var hz = Math.Round(speed / vm_def.RatedSpeed * 50, 1);
                if (hz > 50 || hz < 10)
                {
                    return false;
                }
                var vm = new SinglePumpCalcViewModel(vm_def);
                vm.Id = Guid.NewGuid().ToString();
                vm.Name = this.pumpVariableSpeedChart1.LineNameShowHz ? hz.ToString() : speed.ToString();
                vm.Color = GetRandomColor(index);
                vm.CurrentHz = hz;
                vm.CurrentSpeed = speed;
                vm.IsDefault = false;
                vm.Calc();
                this.pumpVariableSpeedChart1.Add(vm.ToInfo());
                return true;
            };
            dlg.ShowDialog();
        }
        private void AddByHz()
        {
            if (_list == null || _list.Count < 1)
            {
                return;
            }
            var index = _list.Count;
            var vm_def = _list.First();
            var dlg = new SetValueDlg();
            dlg.VerifyValueChanged += (hz) =>
            {
                if (hz > 50 || hz < 10)
                {
                    return false;
                }
                var speed = Math.Round(hz / 50 * vm_def.RatedSpeed);
                var vm = new SinglePumpCalcViewModel(vm_def);
                vm.Id = Guid.NewGuid().ToString();
                vm.Name = this.pumpVariableSpeedChart1.LineNameShowHz ? hz.ToString() : speed.ToString();
                vm.Color = GetRandomColor(index);
                vm.CurrentHz = hz;
                vm.CurrentSpeed = speed;
                vm.IsDefault = false;
                vm.Calc();
                this.pumpVariableSpeedChart1.Add(vm.ToInfo());
                return true;
            };
            dlg.ShowDialog();
        }
        private void AddByPoint()
        {
            if (_list == null || _list.Count < 1)
            {
                return;
            }
            var index = _list.Count;
            var vm_def = _list.First();
            var dlg = new SetPointDlg();
            dlg.SetBindingData();
            dlg.VerifyValueChanged += (x, y) =>
            {
                var pt = new Yw.Geometry.Point2d(x, y);
                var speed = PumpCalcHelper.GetSimuValue(vm_def.Qh, pt, vm_def.RatedSpeed);
                var hz = Math.Round(speed / vm_def.RatedSpeed * 50, 1);
                if (hz > 50 || hz < 20)
                {
                    return false;
                }
                var vm = new SinglePumpCalcViewModel(vm_def);
                vm.Id = Guid.NewGuid().ToString();
                vm.Name = this.pumpVariableSpeedChart1.LineNameShowHz ? hz.ToString() : speed.ToString();
                vm.Color = GetRandomColor(index);
                vm.CurrentHz = hz;
                vm.CurrentSpeed = speed;
                vm.IsDefault = false;
                vm.Calc();
                this.pumpVariableSpeedChart1.Add(vm.ToInfo());
                return true;
            };
            dlg.ShowDialog();
        }
        private Color GetRandomColor(int count)
        {
            var color_list = new List<Color>()
            {
                Color.Red, Color.Blue, Color.Green,Color.DodgerBlue,
                Color.Fuchsia, Color.MidnightBlue,  Color.Maroon, Color.Aquamarine,
                Color.Bisque,Color.BurlyWood
            };
            if (count < color_list.Count)
            {
                return color_list[count];
            }
            var _random = new Random();
            int r = _random.Next(1, 256);
            int g = _random.Next(1, 256);
            int b = _random.Next(1, 256);
            return Color.FromArgb(r, g, b);
        }
        #endregion
        private PumpMatchingViewModel _vm = null;
        public void SetBindindData(PumpMatchingViewModel pump_matching)
        {
            _vm = pump_matching;
            SetChart(pump_matching);
        }
        //设置图表数据
        private async void SetChart(PumpMatchingViewModel pump_math)
        {
            var db_pump_mian_id = pump_math.DbId;
            var db_curve_id = pump_math.CurveDbId;
            if (pump_math.MatchingDbId != null)
            {
                db_pump_mian_id = pump_math.MatchingDbId;
                db_curve_id = pump_math.MatchingCurveDbId;
            }
            if (!long.TryParse(db_pump_mian_id, out long pump_main_id))
            {
                return;
            }
            if (!long.TryParse(db_curve_id, out long curve_id))
            {
                return;
            }
            var pump_main = await new BLL.AssetsPumpMain().GetByID(pump_main_id);
            if (pump_main == null)
            {
                return;
            }
            var phart = await new BLL.XhsPumpMainPhartMappingExtensions().GetByID(curve_id);
            if (phart == null)
            {
                return;
            }
            var diagram = phart.Diagram;
            if (diagram == null)
            {
                return;
            }
            var graph_list = diagram.GraphList;
            if (graph_list == null || !graph_list.Any())
            {
                return;
            }
            var graph_qh = graph_list.Find(x => x.GraphType == HStation.PhartRelation.eGraphType.PumpQH);
            var graph_qe = graph_list.Find(x => x.GraphType == HStation.PhartRelation.eGraphType.PumpQE);
            var graph_qp = graph_list.Find(x => x.GraphType == HStation.PhartRelation.eGraphType.PumpQP);
            if (graph_qh == null)
            {
                return;
            }
            List<Yw.Geometry.Point2d> points_qh = null, points_qe = null, points_qp = null;
            points_qh = PhartPerformCurveHelper.GetFeatPointList(graph_qh.GraphType, graph_qh.GeometryInfo, 12, null);
            if (graph_qe != null)
                points_qe = PhartPerformCurveHelper.GetFeatPointList(graph_qe.GraphType, graph_qe.GeometryInfo, 12, null);
            if (graph_qp != null)
                points_qp = PhartPerformCurveHelper.GetFeatPointList(graph_qp.GraphType, graph_qp.GeometryInfo, 12, null);
            var qh = new Yw.Geometry.CubicSpline2d(points_qh);
            var qe = new Yw.Geometry.CubicSpline2d(points_qe);
            var qp = new Yw.Geometry.CubicSpline2d(points_qp);
            var def_vm = new SinglePumpCalcViewModel();
            def_vm.Id = "def";
            def_vm.Name = "额定曲线";
            def_vm.RatedSpeed = pump_main.RatedSpeed;
            def_vm.CurrentSpeed = pump_main.RatedSpeed;
            def_vm.CurrentHz = 50;
            def_vm.IsDefault = true;
            def_vm.Color = Color.Black;
            def_vm.ExtendRatio = 100;
            def_vm.Qh = qh;
            def_vm.Qe = qe;
            def_vm.Qp = qp;
            def_vm.Calc();
            var working_vm = new SinglePumpCalcViewModel();
            working_vm.Id = "working";
            working_vm.Name = "设定曲线";
            working_vm.RatedSpeed = pump_main.RatedSpeed;
            working_vm.CurrentSpeed = Math.Round(pump_math.CurrentHz / 50 * pump_main.RatedSpeed, 1);
            working_vm.CurrentHz = pump_math.CurrentHz;
            working_vm.IsDefault = false;
            working_vm.Color = Color.Red;
            working_vm.ExtendRatio = 100;
            working_vm.Qh = qh;
            working_vm.Qe = qe;
            working_vm.Qp = qp;
            working_vm.Calc();
            var calc_flow = pump_math.CalcuQ;
            var calc_head = pump_math.CalcuH;
            _list = new List<SinglePumpCalcViewModel>() { def_vm, working_vm };
            var list_yw = _list.Select(x => x.ToInfo()).ToList();
            this.pumpVariableSpeedChart1.Add(list_yw);
            if (calc_flow.HasValue && calc_head.HasValue)
            {
                var flow = Math.Round(calc_flow.Value, 1);
                var head = Math.Round(calc_head.Value, 1);
                this.pumpVariableSpeedChart1.SetDesignPt(flow, head);
            }
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/03-calc/SinglePumpCalcCtrl.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>
WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/03-calc/SinglePumpCalcViewModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,258 @@
namespace HStation.WinFrmUI.Xhs
{
    public class SinglePumpCalcViewModel
    {
        public SinglePumpCalcViewModel() { }
        public SinglePumpCalcViewModel(SinglePumpCalcViewModel rhs)
        {
            this.Id = rhs.Id;
            this.Name = rhs.Name;
            this.IsBp = rhs.IsBp;
            this.RatedSpeed = rhs.RatedSpeed;
            this.CurrentSpeed = rhs.CurrentSpeed;
            this.CurrentHz = rhs.CurrentHz;
            this.IsDefault = rhs.IsDefault;
            this.Color = rhs.Color;
            this.ExtendRatio = rhs.ExtendRatio;
            this.Qh = new Yw.Geometry.CubicSpline2d(rhs.Qh);
            this.Qe = new Yw.Geometry.CubicSpline2d(rhs.Qe);
            this.Qp = new Yw.Geometry.CubicSpline2d(rhs.Qp);
            this.QhCalc = new Yw.Geometry.CubicSpline2d(rhs.QhCalc);
            this.QeCalc = new Yw.Geometry.CubicSpline2d(rhs.QeCalc);
            this.QpCalc = new Yw.Geometry.CubicSpline2d(rhs.QpCalc);
            this.SectQ = rhs.QueryQ;
            this.SectH = rhs.QueryH;
            this.SectE = rhs.QueryE;
            this.SectP = rhs.QueryP;
            this.QueryQ = rhs.QueryQ;
            this.QueryH = rhs.QueryH;
            this.QueryE = rhs.QueryE;
            this.QueryP = rhs.QueryP;
        }
        public SinglePumpCalcViewModel(Yw.WinFrmUI.Phart.PumpVariableSpeedInfoViewModel rhs, Yw.WinFrmUI.Phart.PumpSectPointViewModel sect)
        {
            this.Id = rhs.Id;
            this.Name = rhs.Name;
            this.IsBp = rhs.IsBp;
            this.RatedSpeed = rhs.RatedSpeed;
            this.CurrentSpeed = rhs.CurrentSpeed;
            this.CurrentHz = rhs.CurrentHz;
            this.IsDefault = rhs.IsDefault;
            this.Color = rhs.Color;
            this.ExtendRatio = rhs.ExtendRatio;
            this.Qh = new Yw.Geometry.CubicSpline2d(rhs.Qh);
            this.Qe = new Yw.Geometry.CubicSpline2d(rhs.Qe);
            this.Qp = new Yw.Geometry.CubicSpline2d(rhs.Qp);
            this.QhCalc = new Yw.Geometry.CubicSpline2d(rhs.QhCalc);
            this.QeCalc = new Yw.Geometry.CubicSpline2d(rhs.QeCalc);
            this.QpCalc = new Yw.Geometry.CubicSpline2d(rhs.QpCalc);
            this.SectQ = sect.QueryQ;
            this.SectH = sect.QueryH;
            this.SectE = sect.QueryE;
            this.SectP = sect.QueryP;
            this.QueryQ = rhs.QueryQ;
            this.QueryH = rhs.QueryH;
            this.QueryE = rhs.QueryE;
            this.QueryP = rhs.QueryP;
        }
        public Yw.WinFrmUI.Phart.PumpVariableSpeedInfoViewModel ToInfo()
        {
            var info = new Yw.WinFrmUI.Phart.PumpVariableSpeedInfoViewModel();
            info.Id = this.Id;
            info.Name = this.Name;
            info.IsBp = this.IsBp;
            info.RatedSpeed = this.RatedSpeed;
            info.CurrentSpeed = this.CurrentSpeed;
            info.CurrentHz = this.CurrentHz;
            info.IsDefault = this.IsDefault;
            info.Color = this.Color;
            info.ExtendRatio = this.ExtendRatio;
            info.Qh = new Yw.Geometry.CubicSpline2d(this.Qh);
            info.Qe = new Yw.Geometry.CubicSpline2d(this.Qe);
            info.Qp = new Yw.Geometry.CubicSpline2d(this.Qp);
            info.QhCalc = new Yw.Geometry.CubicSpline2d(this.QhCalc);
            info.QeCalc = new Yw.Geometry.CubicSpline2d(this.QeCalc);
            info.QpCalc = new Yw.Geometry.CubicSpline2d(this.QpCalc);
            info.QueryQ = this.QueryQ;
            info.QueryH = this.QueryH;
            info.QueryE = this.QueryE;
            info.QueryP = this.QueryP;
            return info;
        }
        /// <summary>
        /// æ ‡è¯†
        /// </summary>
        [Display(Name = "标识")]
        public string Id { get; set; }
        /// <summary>
        /// åç§°
        /// </summary>
        [Display(Name = "名称")]
        public string Name { get; set; }
        /// <summary>
        /// æ˜¯å¦å˜é¢‘
        /// </summary>
        [Display(Name = "是否变频")]
        public bool IsBp { get; set; }
        /// <summary>
        /// é¢å®šè½¬é€Ÿ
        /// </summary>
        [Display(Name = "额定转速")]
        public double RatedSpeed { get; set; }
        /// <summary>
        /// å½“前转速
        /// </summary>
        [Display(Name = "转速")]
        public double CurrentSpeed { get; set; }
        /// <summary>
        /// å½“前频率
        /// </summary>
        [Display(Name = "频率")]
        public double CurrentHz { get; set; }
        /// <summary>
        /// æ˜¯å¦é»˜è®¤
        /// </summary>
        [Display(Name = "是否默认")]
        public bool IsDefault { get; set; }
        /// <summary>
        /// é¢œè‰²
        /// </summary>
        [Display(Name = "颜色")]
        public Color Color { get; set; }
        /// <summary>
        /// å»¶é•¿(%)
        /// </summary>
        [Display(Name = "延长(%)")]
        public double ExtendRatio { get; set; } = 100;
        /// <summary>
        /// æµé‡æ‰¬ç¨‹çº¿
        /// </summary>
        [Display(Name = "")]
        public Yw.Geometry.CubicSpline2d Qh { get; set; }
        /// <summary>
        /// æµé‡æ•ˆçŽ‡çº¿
        /// </summary>
        [Display(Name = "")]
        public Yw.Geometry.CubicSpline2d Qe { get; set; }
        /// <summary>
        /// æµé‡åŠŸçŽ‡çº¿
        /// </summary>
        [Display(Name = "")]
        public Yw.Geometry.CubicSpline2d Qp { get; set; }
        /// <summary>
        /// æµé‡æ‰¬ç¨‹çº¿
        /// </summary>
        [Display(Name = "")]
        public Yw.Geometry.CubicSpline2d QhCalc { get; set; }
        /// <summary>
        /// æµé‡æ•ˆçŽ‡çº¿
        /// </summary>
        [Display(Name = "")]
        public Yw.Geometry.CubicSpline2d QeCalc { get; set; }
        /// <summary>
        /// æµé‡åŠŸçŽ‡çº¿
        /// </summary>
        [Display(Name = "")]
        public Yw.Geometry.CubicSpline2d QpCalc { get; set; }
        /// <summary>
        /// æµé‡(m³/h)
        /// </summary>
        [Display(Name = "流量(m³/h)")]
        public string SectQ { get; set; }
        /// <summary>
        /// æ‰¬ç¨‹(m)
        /// </summary>
        [Display(Name = "扬程(m)")]
        public string SectH { get; set; }
        /// <summary>
        /// æ•ˆçއ(%)
        /// </summary>
        [Display(Name = "效率(%)")]
        public string SectE { get; set; }
        /// <summary>
        /// åŠŸçŽ‡(kW)
        /// </summary>
        [Display(Name = "功率(kW)")]
        public string SectP { get; set; }
        /// <summary>
        /// æµé‡(m³/h)
        /// </summary>
        [Display(Name = "流量(m³/h)")]
        public string QueryQ { get; set; }
        /// <summary>
        /// æ‰¬ç¨‹(m)
        /// </summary>
        [Display(Name = "扬程(m)")]
        public string QueryH { get; set; }
        /// <summary>
        /// æ•ˆçއ(%)
        /// </summary>
        [Display(Name = "效率(%)")]
        public string QueryE { get; set; }
        /// <summary>
        /// åŠŸçŽ‡(kW)
        /// </summary>
        [Display(Name = "功率(kW)")]
        public string QueryP { get; set; }
        /// <summary>
        /// è®¡ç®—
        /// </summary>
        public void Calc()
        {
            this.CurrentSpeed = Math.Round(this.CurrentHz / 50 * this.RatedSpeed);
            this.QhCalc = Yw.WinFrmUI.Phart.PumpCalcHelper.CalculateSimilarQH(this.Qh, this.RatedSpeed, this.CurrentSpeed);
            this.QeCalc = Yw.WinFrmUI.Phart.PumpCalcHelper.CalculateSimilarQE(this.Qe, this.RatedSpeed, this.CurrentSpeed);
            this.QpCalc = Yw.WinFrmUI.Phart.PumpCalcHelper.CalculateSimilarQP(this.Qp, this.RatedSpeed, this.CurrentSpeed);
            if (this.QhCalc != null)
                this.QhCalc.MaxX = this.QhCalc.MaxX * this.ExtendRatio / 100;
            if (this.QeCalc != null)
                this.QeCalc.MaxX = this.QeCalc.MaxX * this.ExtendRatio / 100;
            if (this.QpCalc != null)
                this.QpCalc.MaxX = this.QpCalc.MaxX * this.ExtendRatio / 100;
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj
@@ -67,6 +67,8 @@
    <Compile Remove="03-simulation\06-simulation\03-calcu\01-prefix\00-core\SetHydroCalcuPrefixDlg2.Designer.cs" />
    <Compile Remove="03-simulation\06-simulation\03-calcu\01-prefix\00-core\SetHydroCalcuPrefixViewModel.cs" />
    <Compile Remove="04-pump\02-analy\SinglePumpSectPointViewModel.cs" />
    <Compile Remove="04-pump\03-calc\SinglePumpCalcCtrl - å¤åˆ¶.cs" />
    <Compile Remove="04-pump\03-calc\SinglePumpCalcCtrl - å¤åˆ¶.Designer.cs" />
  </ItemGroup>
  <ItemGroup>
@@ -81,6 +83,7 @@
    <EmbeddedResource Remove="03-simulation\06-simulation\01-matching\02-pump\01-pumpsinglematching\AssetsPumpMainForm-bak.resx" />
    <EmbeddedResource Remove="03-simulation\06-simulation\03-calcu\01-prefix\00-core\SetHydroCalcuPrefixCtrl - å¤åˆ¶.resx" />
    <EmbeddedResource Remove="03-simulation\06-simulation\03-calcu\01-prefix\00-core\SetHydroCalcuPrefixDlg2.resx" />
    <EmbeddedResource Remove="04-pump\03-calc\SinglePumpCalcCtrl - å¤åˆ¶.resx" />
  </ItemGroup>
  <ItemGroup>
@@ -186,6 +189,9 @@
    <Compile Update="03-simulation\06-simulation\04-unmatching\04-elbow\XhsProjectSimulationElbowUnMatchingListCtrl.cs" />
    <Compile Update="03-simulation\06-simulation\XhsProjectSimulationCorePage.cs" />
    <Compile Update="03-simulation\07-l3d\XhsProjectSimulationL3dCtrl.cs" />
    <Compile Update="04-pump\03-calc\SinglePumpCalcCtrl.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Update="Properties\Resources.Designer.cs">
      <DesignTime>True</DesignTime>
      <AutoGen>True</AutoGen>
WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj.user
@@ -238,6 +238,9 @@
    <Compile Update="04-pump\02-analy\SinglePumpAnalyInfoCtrl.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="04-pump\03-calc\SinglePumpCalcCtrl.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="04-pump\PumpFullInfoCtrl.cs">
      <SubType>UserControl</SubType>
    </Compile>