lixiaojun
2024-09-26 158292021eb0b31e494b5fdc26a31c58af0bf01b
匹配修改
已修改8个文件
已添加1个文件
727 ■■■■■ 文件已修改
WinFrmUI/HStation.WinFrmUI.Xhs.Core/00-core/AssetsMatchingParasHelper.cs 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/02-bimface/XhsProjectSimulationBimfaceCtrl.cs 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/01-AutoMatching/01-ViewModel/PumpMatchingViewModel.cs 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/01-autoMatching/02-AsstesFormCtrl/AssetsMatchingHelper.cs 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/01-autoMatching/03-FormViewModel/PumpFormViewModel.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/04-unmatching/00-core/XhsProjectSimulationUnMatchingListCtrl.cs 69 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs 60 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/XhsProjectSimulationCorePage.cs 349 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/XhsProjectSimulationCorePage.resx 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/00-core/AssetsMatchingParasHelper.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,97 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HStation.WinFrmUI
{
    /// <summary>
    /// èµ„产匹配参数辅助类
    /// </summary>
    public class AssetsMatchingParasHelper
    {
        //创建资产自动匹配ViewModel
        public static AssetsAutoMatchingViewModel Create(Yw.Model.HydroModelInfo hydroInfo)
        {
            var input = new AssetsAutoMatchingViewModel();
            input.PumpMatchingModels = hydroInfo.Pumps?.Select(x => new PumpMatchingViewModel()
            {
                ID = x.ID,
                Code = x.Code,
                Name = x.Name,
                DbId = x.DbId,
                DbLocked = x.DbLocked,
                ChartDbID = hydroInfo.Curves?.Find(t => t.Code == x.CurveQH)?.DbId,
                ModelType = x.ModelType,
                RatedP = x.RatedP,
                RatedH = x.RatedH,
                RatedN = x.RatedN,
                RatedQ = x.RatedQ,
            }).ToList();
            input.ElbowsMatchingModels = hydroInfo.Elbows?.Select(x => new ElbowsMatchingViewModel()
            {
                ID = x.ID,
                Name = x.Name,
                Code = x.Code,
                Dbid = x.DbId,
                DbLocked = x.DbLocked,
                ModelType = x.ModelType,
                Caliber = x.Caliber,
                Material = x.Material
            }).ToList();
            input.ThreeLinkMatchingModels = hydroInfo.Threelinks?.Select(x => new ThreeLinkMatchingViewModel()
            {
                ID = x.ID,
                Name = x.Name,
                Code = x.Code,
                DbId = x.DbId,
                DbLocked = x.DbLocked,
                ModelType = x.ModelType,
                Caliber = x.Caliber,
                Material = x.Material
            }).ToList();
            input.FourLinkMatchingModels = hydroInfo.Fourlinks?.Select(x => new FourLinkMatchingViewModel()
            {
                ID = x.ID,
                Name = x.Name,
                Code = x.Code,
                Dbid = x.DbId,
                DbLocked = x.DbLocked,
                ModelType = x.ModelType,
                Caliber = x.Caliber,
                Material = x.Material
            }).ToList();
            input.PipeLineMatchingModels = hydroInfo.Pipes?.Select(x => new PipeLineMatchingViewModel()
            {
                ID = x.ID,
                Name = x.Name,
                Code = x.Code,
                DbId = x.DbId,
                DbLocked = x.DbLocked,
                ModelType = x.ModelType,
                Caliber = x.Diameter,//这里是数值
                Material = x.Material
            }).ToList();
            input.ValveMatchingModels = hydroInfo.Pipes?.Select(x => new ValveMatchingViewModel()
            {
                ID = x.ID,
                Name = x.Name,
                Code = x.Code,
                DbId = x.DbId,
                DbLocked = x.DbLocked,
                ModelType = x.ModelType,
                Caliber = x.Diameter,//这里是数值
                Material = x.Material//怎么没有阀门类型
            }).ToList();
            return input;
        }
        //应用资产自动匹配ViewModel
        public static void Apply(Yw.Model.HydroModelInfo hydroInfo, AssetsAutoMatchingViewModel output)
        {
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/02-bimface/XhsProjectSimulationBimfaceCtrl.cs
@@ -10,29 +10,35 @@
        {
            InitializeComponent();
            this.bimfaceInterop3dContainer1.LoadCompletedEvent += BimfaceInterop3dContainer1_LoadCompletedEvent;
            this.bimfaceInterop3dContainer1.LoadViewCompletedEvent += BimfaceInterop3dContainer1_LoadViewCompletedEvent;
            this.bimfaceInterop3dContainer1.ClickInEvent += BimfaceInterop3dContainer1_ClickInEvent;
            this.bimfaceInterop3dContainer1.ClickOutEvent += BimfaceInterop3dContainer1_ClickOutEvent;
        }
        /// <summary>
        /// ç‚¹å‡»ç»„件事件
        /// æ°´åŠ›ç‚¹å‡»äº‹ä»¶
        /// </summary>
        public event Action<string> ClickParterEvent;
        public event Action<Yw.Model.HydroParterInfo> HydroClickEvent;
        /// <summary>
        /// èŽ·å–æ°´åŠ›ä¿¡æ¯äº‹ä»¶
        /// åŠ è½½å®Œæˆäº‹ä»¶
        /// </summary>
        public event Func<Yw.Model.HydroModelInfo> GetHydroInfoEvent;
        public event Action LoadCompletedEvent;
        private HStation.Vmo.XhsProjectVmo _project = null;
        private HStation.Vmo.XhsProjectSiteVmo _projectSite = null;
        private Func<Yw.Model.HydroModelInfo> _hydroInfoFunc = null;
        /// <summary>
        /// ç»‘定数据
        /// </summary>
        public async Task SetBindingData(HStation.Vmo.XhsProjectVmo project, HStation.Vmo.XhsProjectSiteVmo projectSite)
        public async Task SetBindingData
            (
                HStation.Vmo.XhsProjectVmo project,
                HStation.Vmo.XhsProjectSiteVmo projectSite,
                Func<Yw.Model.HydroModelInfo> hydroInfoFunc
            )
        {
            if (project == null)
            {
@@ -40,6 +46,7 @@
            }
            _project = project;
            _projectSite = projectSite;
            _hydroInfoFunc = hydroInfoFunc;
            if (_projectSite == null)
            {
                _projectSite = await BLLFactory<HStation.BLL.XhsProjectSite>.Instance.GetDefaultByProjectID(_project.ID);
@@ -77,15 +84,38 @@
            await this.bimfaceInterop3dContainer1.LoadView(viewToken);
        }
        //构件点击
        //页面视图加载完成后触发
        private void BimfaceInterop3dContainer1_LoadViewCompletedEvent()
        {
            this.LoadCompletedEvent?.Invoke();
        }
        //内部点击
        private void BimfaceInterop3dContainer1_ClickInEvent(Yw.WinFrmUI.Bimface.ClickIn3dInfo obj)
        {
            if (obj == null)
            {
                return;
            }
            this.ClickParterEvent?.Invoke(obj.ObjectId);
            if (HydroClickEvent != null)
            {
                var hydroInfo = _hydroInfoFunc?.Invoke();
                if (hydroInfo == null)
                {
                    return;
                }
                var allParterList = hydroInfo.GetAllParters();
                var parter = allParterList?.Find(x => x.Code == obj.ObjectId);
                this.HydroClickEvent.Invoke(parter);
            }
        }
        //外部点击
        private void BimfaceInterop3dContainer1_ClickOutEvent(ClickOut3dInfo obj)
        {
            this.HydroClickEvent?.Invoke(null);
        }
        #region æž„件的显示与隐藏
@@ -278,7 +308,6 @@
        #region ä¸šåŠ¡
        #region è¿žæŽ¥æž„件颜色
        private const string _linkComponentColor = "#008B00";
@@ -336,7 +365,7 @@
        /// </summary>
        public async Task ShowCalcuCustomLabels(CalcuResult calcuResult)
        {
            var hydroInfo = GetHydroInfoEvent?.Invoke();
            var hydroInfo = _hydroInfoFunc?.Invoke();
            if (hydroInfo == null)
            {
                return;
WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/01-AutoMatching/01-ViewModel/PumpMatchingViewModel.cs
@@ -1,19 +1,16 @@
using HStation.WinFrmUI.Xhs;
namespace HStation.WinFrmUI
namespace HStation.WinFrmUI
{
    /// <summary>
    /// æ°´æ³µåŒ¹é…ViewModel
    /// </summary>
    public class PumpMatchingViewModel
    {
        /// <summary>
        /// ID
        /// </summary>
        [DisplayName("ID")]
        [Browsable(false)]
        public long ID { get; set; }
        /// <summary>
        /// åç§°
        /// </summary>
        [DisplayName("名称")]
        [Browsable(true)]
        public string Name { get; set; }
        /// <summary>
        /// ç¼–码
@@ -23,11 +20,32 @@
        public string Code { get; set; }
        /// <summary>
        /// åž‹å·å
        /// åç§°
        /// </summary>
        [DisplayName("型号名")]
        [DisplayName("名称")]
        [Browsable(true)]
        public string Name { get; set; }
        /// <summary>
        /// åž‹å·
        /// </summary>
        [DisplayName("型号")]
        [Browsable(true)]
        public string ModelType { get; set; }
        /// <summary>
        /// DbId
        /// </summary>
        [DisplayName("DbId")]
        [Browsable(false)]
        public string DbId { get; set; }
        /// <summary>
        /// Db锁定
        /// </summary>
        [DisplayName("锁定")]
        [Browsable(true)]
        public bool DbLocked { get; set; }
        /// <summary>
        /// é¢å®šåŠŸçŽ‡
@@ -57,16 +75,9 @@
        [Browsable(true)]
        public double? RatedN { get; set; }
        /// <summary>
        /// Db锁定
        /// </summary>
        [DisplayName("是否锁定")]
        [Browsable(true)]
        public bool DbLocked { get; set; }
        [DisplayName("匹配前DbID")]
        [Browsable(false)]
        public string DbID { get; set; }
        [DisplayName("ChartDbID")]
        [Browsable(false)]
WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/01-autoMatching/02-AsstesFormCtrl/AssetsMatchingHelper.cs
@@ -1,6 +1,4 @@
using Microsoft.CodeAnalysis.CSharp.Syntax;
namespace HStation.WinFrmUI
namespace HStation.WinFrmUI
{
    public class AssetsMatchingHelper
    {
@@ -620,5 +618,19 @@
            int commonCount = baseChars.Intersect(comparisonChars).Count();
            return commonCount;
        }
        /// <summary>
        /// èŽ·å–ä¸¤ä¸ªå­—ç¬¦ä¸²çš„æ‰€æœ‰äº¤é›†
        /// </summary>
        /// <param name="str1"></param>
        /// <param name="str2"></param>
        /// <returns></returns>
        public static string GetIntersect(string str1, string str2)
        {
            if (str1 == null || str2 == null) return null;
            return string.Join("", str1.Intersect(str2));
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/01-autoMatching/03-FormViewModel/PumpFormViewModel.cs
@@ -10,7 +10,7 @@
        public PumpFormViewModel(PumpMatchingViewModel rhs)
        {
            this.ID = rhs.ID;
            this.DbID = rhs.DbID;
            this.DbID = rhs.DbId;
            this.DbLocked = rhs.DbLocked;
            this.Name = rhs.Name;
            this.RatedH = rhs.RatedH;
@@ -24,7 +24,7 @@
            this.MatchingRatedN = rhs.MatchingRatedN;
            this.MatchingRatedP = rhs.MatchingRatedP;
            this.MatchingRatedQ = rhs.MatchingRatedQ;
            if (rhs.DbID == null)
            if (rhs.DbId == null)
            {
                MatchingType = eMatchingType.Error;
            }
WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/04-unmatching/00-core/XhsProjectSimulationUnMatchingListCtrl.cs
@@ -15,40 +15,6 @@
        #region äº‹ä»¶è§¦å‘
        private void XhsProjectSimulationPipeUnMatchingListCtrl1_HydroClickEvent(Yw.Model.HydroPipeInfo obj)
        {
            this.HydroClickEvent?.Invoke(obj);
        }
        private void XhsProjectSimulationFourlinkUnMatchingListCtrl1_HydroClickEvent(Yw.Model.HydroFourlinkInfo obj)
        {
            this.HydroClickEvent?.Invoke(obj);
        }
        private void XhsProjectSimulationThreelinkUnMatchingListCtrl1_HydroClickEvent(Yw.Model.HydroThreelinkInfo obj)
        {
            this.HydroClickEvent?.Invoke(obj);
        }
        private void XhsProjectSimulationElbowUnMatchingListCtrl1_HydroClickEvent(Yw.Model.HydroElbowInfo obj)
        {
            this.HydroClickEvent?.Invoke(obj);
        }
        private void XhsProjectSimulationValveUnMatchingListCtrl1_HydroClickEvent(Yw.Model.HydroValveInfo obj)
        {
            this.HydroClickEvent?.Invoke(obj);
        }
        private void XhsProjectSimulationPumpUnMatchingListCtrl1_HydroClickEvent(Yw.Model.HydroPumpInfo obj)
        {
            this.HydroClickEvent?.Invoke(obj);
        }
        #endregion
        /// <summary>
        /// æ°´åŠ›ç‚¹å‡»äº‹ä»¶
        /// </summary>
@@ -162,5 +128,40 @@
            parters = parters?.Where(x => string.IsNullOrEmpty(x.DbId)).ToList();
            this.ViewModelEvent?.Invoke(parters);
        }
        #region äº‹ä»¶è§¦å‘
        private void XhsProjectSimulationPipeUnMatchingListCtrl1_HydroClickEvent(Yw.Model.HydroPipeInfo obj)
        {
            this.HydroClickEvent?.Invoke(obj);
        }
        private void XhsProjectSimulationFourlinkUnMatchingListCtrl1_HydroClickEvent(Yw.Model.HydroFourlinkInfo obj)
        {
            this.HydroClickEvent?.Invoke(obj);
        }
        private void XhsProjectSimulationThreelinkUnMatchingListCtrl1_HydroClickEvent(Yw.Model.HydroThreelinkInfo obj)
        {
            this.HydroClickEvent?.Invoke(obj);
        }
        private void XhsProjectSimulationElbowUnMatchingListCtrl1_HydroClickEvent(Yw.Model.HydroElbowInfo obj)
        {
            this.HydroClickEvent?.Invoke(obj);
        }
        private void XhsProjectSimulationValveUnMatchingListCtrl1_HydroClickEvent(Yw.Model.HydroValveInfo obj)
        {
            this.HydroClickEvent?.Invoke(obj);
        }
        private void XhsProjectSimulationPumpUnMatchingListCtrl1_HydroClickEvent(Yw.Model.HydroPumpInfo obj)
        {
            this.HydroClickEvent?.Invoke(obj);
        }
        #endregion
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs
@@ -37,14 +37,13 @@
            barBtnSave = new DevExpress.XtraBars.BarButtonItem();
            barBtnHydroParterList = new DevExpress.XtraBars.BarButtonItem();
            barBtnShowHide = new DevExpress.XtraBars.BarButtonItem();
            barBtnAllAutoMatching = new DevExpress.XtraBars.BarButtonItem();
            barBtnAutoMatching = new DevExpress.XtraBars.BarButtonItem();
            barBtnSingleMatching = new DevExpress.XtraBars.BarSubItem();
            barBtnPumpMatching = new DevExpress.XtraBars.BarButtonItem();
            barBtnValveMatching = new DevExpress.XtraBars.BarButtonItem();
            barBtnPipeMatching = new DevExpress.XtraBars.BarButtonItem();
            barBtn = new DevExpress.XtraBars.BarButtonItem();
            barBtnUnMatchingList = new DevExpress.XtraBars.BarButtonItem();
            barBtnOpenView = new DevExpress.XtraBars.BarButtonItem();
            ribbonPage1 = new DevExpress.XtraBars.Ribbon.RibbonPage();
            ribbonPageGroup1 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup();
            ribbonPageGroup2 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup();
@@ -56,6 +55,7 @@
            pageQ3d = new DevExpress.XtraBars.Navigation.TabNavigationPage();
            xhsProjectSimulationQ3dCtrl1 = new XhsProjectSimulationQ3dCtrl();
            tabPageL3d = new DevExpress.XtraBars.Navigation.TabNavigationPage();
            xhsProjectSimulationL3dCtrl1 = new XhsProjectSimulationL3dCtrl();
            dockManager1 = new DevExpress.XtraBars.Docking.DockManager(components);
            docPnlProperty = new DevExpress.XtraBars.Docking.DockPanel();
            dockPanel1_Container = new DevExpress.XtraBars.Docking.ControlContainer();
@@ -76,7 +76,7 @@
            controlContainer4 = new DevExpress.XtraBars.Docking.ControlContainer();
            xhsProjectSimulationUnMatchingListCtrl1 = new XhsProjectSimulationUnMatchingListCtrl();
            svgImg32 = new DevExpress.Utils.SvgImageCollection(components);
            xhsProjectSimulationL3dCtrl1 = new XhsProjectSimulationL3dCtrl();
            radialMenu1 = new DevExpress.XtraBars.Ribbon.RadialMenu(components);
            ((ISupportInitialize)ribbonControl1).BeginInit();
            ((ISupportInitialize)tabPane1).BeginInit();
            tabPane1.SuspendLayout();
@@ -97,13 +97,14 @@
            docPnlUnMatchingList.SuspendLayout();
            controlContainer4.SuspendLayout();
            ((ISupportInitialize)svgImg32).BeginInit();
            ((ISupportInitialize)radialMenu1).BeginInit();
            SuspendLayout();
            // 
            // ribbonControl1
            // 
            ribbonControl1.ExpandCollapseItem.Id = 0;
            ribbonControl1.ItemPanelStyle = DevExpress.XtraBars.Ribbon.RibbonItemPanelStyle.Classic;
            ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem, barBtnHydroCheck, barBtnHydroCalcu, barBtnHydroExportInp, barBtnSave, barBtnHydroParterList, barBtnShowHide, barBtnAllAutoMatching, barBtnSingleMatching, barBtnPumpMatching, barBtnValveMatching, barBtnPipeMatching, barBtn, barBtnUnMatchingList, barBtnOpenView });
            ribbonControl1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbonControl1.ExpandCollapseItem, barBtnHydroCheck, barBtnHydroCalcu, barBtnHydroExportInp, barBtnSave, barBtnHydroParterList, barBtnShowHide, barBtnAutoMatching, barBtnSingleMatching, barBtnPumpMatching, barBtnValveMatching, barBtnPipeMatching, barBtn, barBtnUnMatchingList });
            ribbonControl1.Location = new Point(0, 0);
            ribbonControl1.MaxItemId = 21;
            ribbonControl1.Name = "ribbonControl1";
@@ -162,13 +163,13 @@
            barBtnShowHide.Name = "barBtnShowHide";
            barBtnShowHide.ItemClick += barBtnShowHide_ItemClick;
            // 
            // barBtnAllAutoMatching
            // barBtnAutoMatching
            // 
            barBtnAllAutoMatching.Caption = "自动匹配";
            barBtnAllAutoMatching.Id = 10;
            barBtnAllAutoMatching.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnAllAutoMatching.ImageOptions.SvgImage");
            barBtnAllAutoMatching.Name = "barBtnAllAutoMatching";
            barBtnAllAutoMatching.ItemClick += barBtnAllAutoMatching_ItemClick;
            barBtnAutoMatching.Caption = "自动匹配";
            barBtnAutoMatching.Id = 10;
            barBtnAutoMatching.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnAutoMatching.ImageOptions.SvgImage");
            barBtnAutoMatching.Name = "barBtnAutoMatching";
            barBtnAutoMatching.ItemClick += barBtnAutoMatching_ItemClick;
            // 
            // barBtnSingleMatching
            // 
@@ -214,14 +215,6 @@
            barBtnUnMatchingList.Name = "barBtnUnMatchingList";
            barBtnUnMatchingList.ItemClick += barBtnUnMatchingList_ItemClick;
            // 
            // barBtnOpenView
            //
            barBtnOpenView.Caption = "Open";
            barBtnOpenView.Id = 20;
            barBtnOpenView.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnOpenView.ImageOptions.SvgImage");
            barBtnOpenView.Name = "barBtnOpenView";
            barBtnOpenView.ItemClick += barBtnOpenView_ItemClick;
            //
            // ribbonPage1
            // 
            ribbonPage1.Groups.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPageGroup[] { ribbonPageGroup1, ribbonPageGroup2, ribbonPageGroup3 });
@@ -230,11 +223,10 @@
            // 
            // ribbonPageGroup1
            // 
            ribbonPageGroup1.ItemLinks.Add(barBtnAllAutoMatching);
            ribbonPageGroup1.ItemLinks.Add(barBtnAutoMatching);
            ribbonPageGroup1.ItemLinks.Add(barBtnUnMatchingList);
            ribbonPageGroup1.ItemLinks.Add(barBtnSingleMatching);
            ribbonPageGroup1.ItemLinks.Add(barBtnShowHide);
            ribbonPageGroup1.ItemLinks.Add(barBtnUnMatchingList);
            ribbonPageGroup1.ItemLinks.Add(barBtnOpenView);
            ribbonPageGroup1.Name = "ribbonPageGroup1";
            ribbonPageGroup1.Text = "模型";
            // 
@@ -287,8 +279,8 @@
            xhsProjectSimulationBimfaceCtrl1.Name = "xhsProjectSimulationBimfaceCtrl1";
            xhsProjectSimulationBimfaceCtrl1.Size = new Size(886, 185);
            xhsProjectSimulationBimfaceCtrl1.TabIndex = 0;
            xhsProjectSimulationBimfaceCtrl1.ClickParterEvent += xhsProjectSimulationBimfaceCtrl1_ClickParterEvent;
            xhsProjectSimulationBimfaceCtrl1.GetHydroInfoEvent += xhsProjectSimulationBimfaceCtrl1_GetHydroInfoEvent;
            xhsProjectSimulationBimfaceCtrl1.HydroClickEvent += xhsProjectSimulationBimfaceCtrl1_HydroClickEvent;
            xhsProjectSimulationBimfaceCtrl1.LoadCompletedEvent += xhsProjectSimulationBimfaceCtrl1_LoadCompletedEvent;
            // 
            // pageQ3d
            // 
@@ -311,6 +303,14 @@
            tabPageL3d.Controls.Add(xhsProjectSimulationL3dCtrl1);
            tabPageL3d.Name = "tabPageL3d";
            tabPageL3d.Size = new Size(886, 185);
            //
            // xhsProjectSimulationL3dCtrl1
            //
            xhsProjectSimulationL3dCtrl1.Dock = DockStyle.Fill;
            xhsProjectSimulationL3dCtrl1.Location = new Point(0, 0);
            xhsProjectSimulationL3dCtrl1.Name = "xhsProjectSimulationL3dCtrl1";
            xhsProjectSimulationL3dCtrl1.Size = new Size(886, 185);
            xhsProjectSimulationL3dCtrl1.TabIndex = 0;
            // 
            // dockManager1
            // 
@@ -497,13 +497,10 @@
            svgImg32.ImageSize = new Size(32, 32);
            svgImg32.Add("calculatesheet", "image://svgimages/spreadsheet/calculatesheet.svg");
            // 
            // xhsProjectSimulationL3dCtrl1
            // radialMenu1
            // 
            xhsProjectSimulationL3dCtrl1.Dock = DockStyle.Fill;
            xhsProjectSimulationL3dCtrl1.Location = new Point(0, 0);
            xhsProjectSimulationL3dCtrl1.Name = "xhsProjectSimulationL3dCtrl1";
            xhsProjectSimulationL3dCtrl1.Size = new Size(886, 185);
            xhsProjectSimulationL3dCtrl1.TabIndex = 0;
            radialMenu1.Name = "radialMenu1";
            radialMenu1.Ribbon = ribbonControl1;
            // 
            // XhsProjectSimulationCorePage
            // 
@@ -542,6 +539,7 @@
            docPnlUnMatchingList.ResumeLayout(false);
            controlContainer4.ResumeLayout(false);
            ((ISupportInitialize)svgImg32).EndInit();
            ((ISupportInitialize)radialMenu1).EndInit();
            ResumeLayout(false);
            PerformLayout();
        }
@@ -560,7 +558,7 @@
        private DevExpress.XtraBars.BarButtonItem barBtnShowHide;
        private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup4;
        private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup3;
        private DevExpress.XtraBars.BarButtonItem barBtnAllAutoMatching;
        private DevExpress.XtraBars.BarButtonItem barBtnAutoMatching;
        private DevExpress.XtraBars.BarSubItem barBtnSingleMatching;
        private DevExpress.XtraBars.BarButtonItem barBtnPumpMatching;
        private DevExpress.XtraBars.BarButtonItem barBtnValveMatching;
@@ -593,7 +591,7 @@
        private DevExpress.XtraBars.Docking.ControlContainer controlContainer5;
        private Xhs.AssetsMainChoicePage assetsMainChoicePage1;
        private XhsProjectSimulationUnMatchingListCtrl xhsProjectSimulationUnMatchingListCtrl1;
        private DevExpress.XtraBars.BarButtonItem barBtnOpenView;
        private XhsProjectSimulationL3dCtrl xhsProjectSimulationL3dCtrl1;
        private DevExpress.XtraBars.Ribbon.RadialMenu radialMenu1;
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/XhsProjectSimulationCorePage.cs
@@ -26,7 +26,7 @@
        private HStation.Vmo.XhsProjectVmo _project = null;//项目
        private HStation.Vmo.XhsProjectSiteVmo _projectSite = null;//项目站
        private Yw.Model.HydroModelInfo _hydroInfo = null;//水力信息
        private List<string> _fastShowHideCodeList = null;//显隐编码列表
        private Yw.Model.HydroParterInfo _parter = null;
        private Yw.EPAnet.CheckResult _checkResult = null;
@@ -59,8 +59,6 @@
                    .GetDefaultByObjectTypeAndObjectIDOfPurpose(HStation.Xhs.DataType.XhsProjectSite, _projectSite.ID, HStation.Xhs.Purpose.Simulation);
                _hydroInfo = await BLLFactory<Yw.BLL.HydroModelInfo>.Instance.GetByID(hydroRelation.ModelID);
            }
            this.xhsProjectSimulationQ3dCtrl1.SetBindingData(_hydroInfo);
            this.xhsProjectSimulationL3dCtrl1.SetBindingData(_hydroInfo);
        }
        /// <summary>
@@ -74,7 +72,9 @@
                return;
            }
            this.PageTitle.Caption = $"{_project.Name}\r\n水力模拟";
            await this.xhsProjectSimulationBimfaceCtrl1.SetBindingData(_project, _projectSite);
            await this.xhsProjectSimulationBimfaceCtrl1.SetBindingData(_project, _projectSite, () => _hydroInfo);
            this.xhsProjectSimulationQ3dCtrl1.SetBindingData(_hydroInfo);
            this.xhsProjectSimulationL3dCtrl1.SetBindingData(_hydroInfo);
        }
        //属性面板获取水力信息事件
@@ -83,28 +83,7 @@
            return _hydroInfo;
        }
        //一键显隐
        private async void barBtnShowHide_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (_hydroInfo == null)
            {
                return;
            }
            if (_hydroInfo.Decorators == null || _hydroInfo.Decorators.Count < 1)
            {
                return;
            }
            if (_fastShowHideCodeList == null)
            {
                _fastShowHideCodeList = _hydroInfo.Decorators.Select(x => x.Code).ToList();
                await this.xhsProjectSimulationBimfaceCtrl1.HideComponents(_fastShowHideCodeList);
            }
            else
            {
                await this.xhsProjectSimulationBimfaceCtrl1.ShowComponents(_fastShowHideCodeList);
                _fastShowHideCodeList = null;
            }
        }
@@ -180,98 +159,7 @@
        //自动匹配
        private void barBtnAllAutoMatching_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (_hydroInfo == null)
            {
                return;
            }
            var input = new AssetsAutoMatchingViewModel();
            input.PumpMatchingModels = _hydroInfo.Pumps?.Select(x => new PumpMatchingViewModel()
            {
                ID = x.ID,
                Code = x.Code,
                Name = x.Name,
                DbID = x.DbId,
                DbLocked = x.DbLocked,
                ChartDbID = _hydroInfo.Curves?.Find(t => t.Code == x.CurveQH)?.DbId,
                ModelType = x.ModelType,
                RatedP = x.RatedP,
                RatedH = x.RatedH,
                RatedN = x.RatedN,
                RatedQ = x.RatedQ,
            }).ToList();
            input.ElbowsMatchingModels = _hydroInfo.Elbows?.Select(x => new ElbowsMatchingViewModel()
            {
                ID = x.ID,
                Name = x.Name,
                Code = x.Code,
                Dbid = x.DbId,
                DbLocked = x.DbLocked,
                ModelType = x.ModelType,
                Caliber = x.Caliber,
                Material = x.Material
            }).ToList();
            input.ThreeLinkMatchingModels = _hydroInfo.Threelinks?.Select(x => new ThreeLinkMatchingViewModel()
            {
                ID = x.ID,
                Name = x.Name,
                Code = x.Code,
                DbId = x.DbId,
                DbLocked = x.DbLocked,
                ModelType = x.ModelType,
                Caliber = x.Caliber,
                Material = x.Material
            }).ToList();
            input.FourLinkMatchingModels = _hydroInfo.Fourlinks?.Select(x => new FourLinkMatchingViewModel()
            {
                ID = x.ID,
                Name = x.Name,
                Code = x.Code,
                Dbid = x.DbId,
                DbLocked = x.DbLocked,
                ModelType = x.ModelType,
                Caliber = x.Caliber,
                Material = x.Material
            }).ToList();
            input.PipeLineMatchingModels = _hydroInfo.Pipes?.Select(x => new PipeLineMatchingViewModel()
            {
                ID = x.ID,
                Name = x.Name,
                Code = x.Code,
                DbId = x.DbId,
                DbLocked = x.DbLocked,
                ModelType = x.ModelType,
                Caliber = x.Diameter,//这里是数值
                Material = x.Material
            }).ToList();
            input.ValveMatchingModels = _hydroInfo.Pipes?.Select(x => new ValveMatchingViewModel()
            {
                ID = x.ID,
                Name = x.Name,
                Code = x.Code,
                DbId = x.DbId,
                DbLocked = x.DbLocked,
                ModelType = x.ModelType,
                Caliber = x.Diameter,//这里是数值
                Material = x.Material//怎么没有阀门类型
            }).ToList();
            this.docPnlHydroCheck.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
            this.docPnlHydroCalcu.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
            this.docPnlHydroParterList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
            this.docPnlUnMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
            this.hydroParterListCtrl1.SetBindingData(_hydroInfo);
            this.docPnlHydroParterList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
            this.docPnlMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible;
            this.docPnlMatchingList.Height = 350;
            this.assetsMainChoicePage1.SetBindingData(input);
            this.assetsMainChoicePage1.RelaodEvent += (rhs) =>
                 {
                     return false;
                 };
        }
@@ -286,25 +174,152 @@
        #region Bimface
        //获取水力信息
        private Yw.Model.HydroModelInfo xhsProjectSimulationBimfaceCtrl1_GetHydroInfoEvent()
        {
            return _hydroInfo;
        }
        //bimface æž„件点击
        private void xhsProjectSimulationBimfaceCtrl1_ClickParterEvent(string objectId)
        //bimface åŠ è½½å®Œæˆäº‹ä»¶
        private async void xhsProjectSimulationBimfaceCtrl1_LoadCompletedEvent()
        {
            if (_hydroInfo == null)
            {
                return;
            }
            var allParterList = _hydroInfo.GetAllParters();
            _parter = allParterList.Find(x => x.Code == objectId);
            var elementIds = new List<string>();
            var pumps = _hydroInfo.Pumps?.Where(x => x.LinkStatus == Yw.Hydro.PumpStatus.Open).ToList();
            pumps?.ForEach(x => elementIds.Add(x.Code));
            var valves = _hydroInfo.Valves?.Where(x => x.LinkStatus == Yw.Hydro.ValveStatus.Open).ToList();
            valves?.ForEach(x => elementIds.Add(x.Code));
            await this.xhsProjectSimulationBimfaceCtrl1.SetOpenComponentsColor(elementIds);
        }
        //bimface æ°´åŠ›ç‚¹å‡»äº‹ä»¶
        private void xhsProjectSimulationBimfaceCtrl1_HydroClickEvent(Yw.Model.HydroParterInfo obj)
        {
            if (_hydroInfo == null)
            {
                return;
            }
            _parter = obj;
            ShowProperty();
            SetBimfaceLinkColor();
        }
        //设置Bimface连接颜色
        private async void SetBimfaceLinkColor()
        {
            if (_hydroInfo == null)
            {
                return;
            }
            List<string> elementIds = null;
            if (_parter != null)
            {
                if (_parter is Yw.Model.HydroLinkInfo linker)
                {
                    elementIds = new List<string>() { linker.StartCode, linker.EndCode };
                }
            }
            await this.xhsProjectSimulationBimfaceCtrl1.SetLinkComponentsColor(elementIds);
        }
        #endregion
        #region è‡ªåŠ¨åŒ¹é…
        //自动匹配
        private void barBtnAutoMatching_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (_hydroInfo == null)
            {
                return;
            }
            this.docPnlHydroCheck.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
            this.docPnlHydroCalcu.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
            this.docPnlHydroParterList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
            this.docPnlMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
            this.docPnlUnMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
            var input = AssetsMatchingParasHelper.Create(_hydroInfo);
            this.assetsMainChoicePage1.SetBindingData(input);
            this.assetsMainChoicePage1.RelaodEvent += (output) =>
            {
                AssetsMatchingParasHelper.Apply(_hydroInfo, output);
                return true;
            };
            this.docPnlMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible;
            this.docPnlMatchingList.Height = 350;
        }
        #endregion
        #region æœªåŒ¹é…åˆ—表
        //未匹配列表
        private void barBtnUnMatchingList_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (_hydroInfo == null)
            {
                return;
            }
            this.docPnlHydroCheck.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
            this.docPnlHydroCalcu.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
            this.docPnlHydroParterList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
            this.docPnlMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
            this.docPnlUnMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
            this.xhsProjectSimulationUnMatchingListCtrl1.SetBindingData(_hydroInfo);
            this.docPnlUnMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible;
            this.docPnlUnMatchingList.Height = 350;
        }
        //未匹配列表点击事件
        private async void xhsProjectSimulationUnMatchingListCtrl1_HydroClickEvent(Yw.Model.HydroParterInfo parter)
        {
            var allParterList = _hydroInfo.GetAllParters();
            _parter = allParterList.Find(x => x.ID == parter.ID);
            var elementIds = new List<string>() { _parter.Code };
            await this.xhsProjectSimulationBimfaceCtrl1.ZoomAndSelectComponents(elementIds);
            ShowProperty();
        }
        //未匹配列表查看模型
        private async void xhsProjectSimulationUnMatchingListCtrl1_ViewModelEvent(List<Yw.Model.HydroParterInfo> parters)
        {
            var codes = parters?.Select(x => x.Code).Distinct().ToList();
            await this.xhsProjectSimulationBimfaceCtrl1.ZoomAndSelectComponents(codes);
            _parter = null;
            ShowProperty();
        }
        #endregion
        #region ä¸€é”®æ˜¾éš
        //显隐编码列表
        private List<string> _fastShowHideCodeList = null;
        //触发一键显隐
        private async void barBtnShowHide_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (_hydroInfo == null)
            {
                return;
            }
            if (_hydroInfo.Decorators == null || _hydroInfo.Decorators.Count < 1)
            {
                return;
            }
            if (_fastShowHideCodeList == null)
            {
                _fastShowHideCodeList = _hydroInfo.Decorators.Select(x => x.Code).ToList();
                await this.xhsProjectSimulationBimfaceCtrl1.HideComponents(_fastShowHideCodeList);
            }
            else
            {
                await this.xhsProjectSimulationBimfaceCtrl1.ShowComponents(_fastShowHideCodeList);
                _fastShowHideCodeList = null;
            }
        }
        #endregion
@@ -351,47 +366,7 @@
        #endregion
        #region æœªåŒ¹é…åˆ—表
        //未匹配列表
        private void barBtnUnMatchingList_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (_hydroInfo == null)
            {
                return;
            }
            this.docPnlHydroCheck.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
            this.docPnlHydroCalcu.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
            this.docPnlHydroParterList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
            this.docPnlUnMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
            this.docPnlMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Hidden;
            this.xhsProjectSimulationUnMatchingListCtrl1.SetBindingData(_hydroInfo);
            this.docPnlUnMatchingList.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible;
            this.docPnlUnMatchingList.Height = 350;
        }
        //未匹配列表点击事件
        private async void xhsProjectSimulationUnMatchingListCtrl1_HydroClickEvent(Yw.Model.HydroParterInfo parter)
        {
            var allParterList = _hydroInfo.GetAllParters();
            _parter = allParterList.Find(x => x.ID == parter.ID);
            var elementIds = new List<string>() { _parter.Code };
            await this.xhsProjectSimulationBimfaceCtrl1.ZoomAndSelectComponents(elementIds);
            ShowProperty();
        }
        //未匹配列表查看模型
        private async void xhsProjectSimulationUnMatchingListCtrl1_ViewModelEvent(List<Yw.Model.HydroParterInfo> parters)
        {
            var codes = parters?.Select(x => x.Code).Distinct().ToList();
            await this.xhsProjectSimulationBimfaceCtrl1.ZoomAndSelectComponents(codes);
            _parter = null;
            ShowProperty();
        }
        #endregion
        #region ä¿å­˜æ°´åŠ›ä¿¡æ¯
@@ -414,11 +389,6 @@
        #endregion
        private void barBtnOpenView_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            SetBimfaceOpenColor();
        }
        #region ä¸šåŠ¡æ–¹æ³•
@@ -472,43 +442,16 @@
            }
        }
        //设置Bimface连接颜色
        private async void SetBimfaceLinkColor()
        {
            if (_hydroInfo == null)
            {
                return;
            }
            List<string> elementIds = null;
            if (_parter != null)
            {
                if (_parter is Yw.Model.HydroLinkInfo linker)
                {
                    elementIds = new List<string>() { linker.StartCode, linker.EndCode };
                }
            }
            await this.xhsProjectSimulationBimfaceCtrl1.SetLinkComponentsColor(elementIds);
        }
        //设置Bimface Open é¢œè‰²
        private async void SetBimfaceOpenColor()
        {
            if (_hydroInfo == null)
            {
                return;
            }
            var elementIds = new List<string>();
            var pumps = _hydroInfo.Pumps?.Where(x => x.LinkStatus == Yw.Hydro.PumpStatus.Open).ToList();
            pumps?.ForEach(x => elementIds.Add(x.Code));
            var valves = _hydroInfo.Valves?.Where(x => x.LinkStatus == Yw.Hydro.ValveStatus.Open).ToList();
            valves?.ForEach(x => elementIds.Add(x.Code));
            await this.xhsProjectSimulationBimfaceCtrl1.SetOpenComponentsColor(elementIds);
        }
        #endregion
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-simulation/06-simulation/XhsProjectSimulationCorePage.resx
@@ -262,7 +262,7 @@
        MC45LTItMnMwLjktMiwyLTJTMjYsMjIuOSwyNiwyNHoiIGNsYXNzPSJCbGFjayIgLz4NCjwvc3ZnPgs=
</value>
  </data>
  <data name="barBtnAllAutoMatching.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
  <data name="barBtnAutoMatching.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
@@ -427,29 +427,13 @@
        L3N2Zz4L
</value>
  </data>
  <data name="barBtnOpenView.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAKMCAAAC77u/
        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
        Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
        MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cgku
        WWVsbG93e2ZpbGw6I0ZGQjExNTt9CgkuQmx1ZXtmaWxsOiMxMTc3RDc7fQoJLkdyZWVue2ZpbGw6IzAz
        OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
        Y2l0eTowLjc1O30KCS5zdDF7b3BhY2l0eTowLjU7fQoJLnN0MntvcGFjaXR5OjAuMjU7fQo8L3N0eWxl
        Pg0KICA8ZyBpZD0iQ2hlY2tCb3giPg0KICAgIDxwYXRoIGQ9Ik0yNyw0SDVDNC41LDQsNCw0LjUsNCw1
        djIyYzAsMC41LDAuNSwxLDEsMWgyMmMwLjUsMCwxLTAuNSwxLTFWNUMyOCw0LjUsMjcuNSw0LDI3LDR6
        IE0xNCwyMmwtNi02bDItMmw0LDQgICBsOC04bDIsMkwxNCwyMnoiIGNsYXNzPSJHcmVlbiIgLz4NCiAg
        PC9nPg0KPC9zdmc+Cw==
</value>
  </data>
  <metadata name="dockManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>179, 21</value>
  </metadata>
  <metadata name="svgImg32.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>45, 22</value>
  </metadata>
  <metadata name="radialMenu1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>323, 21</value>
  </metadata>
</root>