WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/08-working/XhsProjectSimulationWorkingPage.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
WinFrmUI/Yw.WinFrmUI.Core/04-property/ShowEditorInViewAttribute.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyViewCtrl.Designer.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyViewCtrl.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyViewCtrl.resx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveCtrl.Designer.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/08-working/XhsProjectSimulationWorkingPage.cs
@@ -167,10 +167,10 @@ #region 屿§æ§ä»¶ //屿§æ§ä»¶ private XhsProjectSimulationPropertyCtrl _propertyCtrl = null; private HydroVisualPropertyViewCtrl _propertyCtrl = null; //è·å屿§æ§ä»¶ private XhsProjectSimulationPropertyCtrl GetPropertyCtrl() private HydroVisualPropertyViewCtrl GetPropertyCtrl() { if (_hydroInfo == null) { @@ -178,11 +178,11 @@ } if (_propertyCtrl == null) { _propertyCtrl = new XhsProjectSimulationPropertyCtrl(); _propertyCtrl = new HydroVisualPropertyViewCtrl(); _propertyCtrl.Dock = DockStyle.Fill; _propertyCtrl.HydroViewEvent += (visual) => _propertyCtrl.HydroViewEvent += (visualViewModel) => { SelectVisual(visual, eVisualSource.Property); SelectVisual(GetVisual(visualViewModel), eVisualSource.Property); }; _propertyCtrl.BlinkLinkNodeEvent += async (link, linkNodeCode) => { //强è°è¿æ¥èç¹ @@ -221,38 +221,6 @@ await Task.Delay(5000); await _bimfaceCtrl?.ClearBlinkComponents(); }; _propertyCtrl.PropertyValueChangedEvent += async (visual) => { if (visual == null) { return; } UpdateVisualListCtrl(); var gradingHelper = await GetGradingHelper(); gradingHelper.Set(); }; _propertyCtrl.MarkPropertyValueChangedEvent += async (visual) => { //æ æ³¨å±æ§åçæ¹å //夿å½åæ¯å¦ææ 注å±ç¤ºï¼è¥æåæ´æ°æ æ³¨ï¼æå¥½æ¯æ´æ°åä¸ªæ æ³¨ var markHelper = await GetMarkHelper(); markHelper.Set(visual); }; _propertyCtrl.GradingPropertyValueChangedEvent += async (visual) => { //åçº§å±æ§åçæ¹å //夿å½åæ¯å¦æå级å±ç¤ºï¼è¥æåæ´æ°åçº§ï¼æå¥½æ¯æ´æ°å个å级 var gradingHelper = await GetGradingHelper(); gradingHelper.Set(visual); }; _propertyCtrl.FlowEffectPropertyValueChangedEvent += async (visual) => { //æµå屿§åçæ¹å //夿æµåæ¯å¦å è½½ï¼å¦æå è½½åæ´æ°æµåï¼æå¥½æ¯æ´æ°å个æµå var flowEffectHelper = await GetFlowEffectHelper(); flowEffectHelper.Set(visual); }; } return _propertyCtrl; } @@ -425,6 +393,23 @@ return _visualListHelper; } //è·åå¯è§æä»¶ private Yw.Model.HydroVisualInfo GetVisual(string code) { if (string.IsNullOrEmpty(code)) { return default; } var visualListHelper = GetVisualListHelper(); return visualListHelper.GetVisual(code); } //è·åå¯è§æä»¶ private Yw.Model.HydroVisualInfo GetVisual(HydroVisualViewModel visualViewModel) { return GetVisual(visualViewModel?.Code); } #endregion #region è§å¾å表 WinFrmUI/Yw.WinFrmUI.Core/04-property/ShowEditorInViewAttribute.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ namespace Yw.WinFrmUI { /// <summary> /// ç¡®å®æ¯å¦å 许å¨è§å¾ä¸æ¾ç¤ºç¼è¾æ¡ /// </summary> [AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = true)] public class ShowEditorInViewAttribute : Attribute { /// <summary> /// /// </summary> public ShowEditorInViewAttribute(bool showEditor) { this.ShowEditor = showEditor; } /// <summary> /// /// </summary> public bool ShowEditor { get; set; } } } WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyViewCtrl.Designer.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,304 @@ namespace Yw.WinFrmUI { partial class HydroVisualPropertyViewCtrl { /// <summary> /// å¿ éç设计å¨åéã /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// æ¸ çæææ£å¨ä½¿ç¨çèµæºã /// </summary> /// <param name="disposing">妿åºéæ¾æç®¡èµæºï¼ä¸º trueï¼å¦å为 falseã</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region ç»ä»¶è®¾è®¡å¨çæç代ç /// <summary> /// è®¾è®¡å¨æ¯ææéçæ¹æ³ - ä¸è¦ /// 使ç¨ä»£ç ç¼è¾å¨ä¿®æ¹æ¤æ¹æ³çå 容ã /// </summary> private void InitializeComponent() { components = new Container(); ComponentResourceManager resources = new ComponentResourceManager(typeof(HydroVisualPropertyViewCtrl)); DevExpress.Utils.SuperToolTip superToolTip1 = new DevExpress.Utils.SuperToolTip(); DevExpress.Utils.ToolTipItem toolTipItem1 = new DevExpress.Utils.ToolTipItem(); DevExpress.Utils.SuperToolTip superToolTip2 = new DevExpress.Utils.SuperToolTip(); DevExpress.Utils.ToolTipTitleItem toolTipTitleItem1 = new DevExpress.Utils.ToolTipTitleItem(); DevExpress.Utils.ToolTipItem toolTipItem2 = new DevExpress.Utils.ToolTipItem(); layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); hydroVisualPropertyDescriptionCtrl1 = new HydroVisualPropertyDescriptionCtrl(); propertyGridControl1 = new DevExpress.XtraVerticalGrid.PropertyGridControl(); svgImg16 = new DevExpress.Utils.SvgImageCollection(components); layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); layoutProperty = new DevExpress.XtraLayout.LayoutControlItem(); layoutDescription = new DevExpress.XtraLayout.LayoutControlItem(); splitterItem1 = new DevExpress.XtraLayout.SplitterItem(); barManager1 = new DevExpress.XtraBars.BarManager(components); bar1 = new DevExpress.XtraBars.Bar(); barBtnExpandAll = new DevExpress.XtraBars.BarButtonItem(); barBtnCollpseAll = new DevExpress.XtraBars.BarButtonItem(); barBtnView = new DevExpress.XtraBars.BarButtonItem(); barBtnHelp = new DevExpress.XtraBars.BarButtonItem(); barDockControlTop = new DevExpress.XtraBars.BarDockControl(); barDockControlBottom = new DevExpress.XtraBars.BarDockControl(); barDockControlLeft = new DevExpress.XtraBars.BarDockControl(); barDockControlRight = new DevExpress.XtraBars.BarDockControl(); ((ISupportInitialize)layoutControl1).BeginInit(); layoutControl1.SuspendLayout(); ((ISupportInitialize)propertyGridControl1).BeginInit(); ((ISupportInitialize)svgImg16).BeginInit(); ((ISupportInitialize)layoutControlGroup1).BeginInit(); ((ISupportInitialize)layoutProperty).BeginInit(); ((ISupportInitialize)layoutDescription).BeginInit(); ((ISupportInitialize)splitterItem1).BeginInit(); ((ISupportInitialize)barManager1).BeginInit(); SuspendLayout(); // // layoutControl1 // layoutControl1.Controls.Add(hydroVisualPropertyDescriptionCtrl1); layoutControl1.Controls.Add(propertyGridControl1); layoutControl1.Dock = DockStyle.Fill; layoutControl1.Location = new Point(0, 28); layoutControl1.Name = "layoutControl1"; layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(567, 190, 714, 577); layoutControl1.Root = layoutControlGroup1; layoutControl1.Size = new Size(260, 602); layoutControl1.TabIndex = 0; layoutControl1.Text = "layoutControl1"; // // hydroVisualPropertyDescriptionCtrl1 // hydroVisualPropertyDescriptionCtrl1.Location = new Point(2, 502); hydroVisualPropertyDescriptionCtrl1.Name = "hydroVisualPropertyDescriptionCtrl1"; hydroVisualPropertyDescriptionCtrl1.Size = new Size(256, 98); hydroVisualPropertyDescriptionCtrl1.TabIndex = 5; // // propertyGridControl1 // propertyGridControl1.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder; propertyGridControl1.ImageList = svgImg16; propertyGridControl1.Location = new Point(2, 2); propertyGridControl1.Name = "propertyGridControl1"; propertyGridControl1.OptionsBehavior.PropertySort = DevExpress.XtraVerticalGrid.PropertySort.NoSort; propertyGridControl1.OptionsView.AllowReadOnlyRowAppearance = DevExpress.Utils.DefaultBoolean.True; propertyGridControl1.OptionsView.ShowFocusedFrame = false; propertyGridControl1.OptionsView.ShowRootLevelIndent = false; propertyGridControl1.RecordWidth = 120; propertyGridControl1.RowHeaderWidth = 80; propertyGridControl1.Size = new Size(256, 490); propertyGridControl1.TabIndex = 4; propertyGridControl1.FocusedRowChanged += propertyGridControl1_FocusedRowChanged; propertyGridControl1.CustomRecordCellEdit += propertyGridControl1_CustomRecordCellEdit; propertyGridControl1.CustomDrawRowHeaderIndent += propertyGridControl1_CustomDrawRowHeaderIndent; propertyGridControl1.CustomDrawRowHeaderCell += propertyGridControl1_CustomDrawRowHeaderCell; propertyGridControl1.CustomDrawRowValueCell += propertyGridControl1_CustomDrawRowValueCell; propertyGridControl1.ShowingEditor += propertyGridControl1_ShowingEditor; propertyGridControl1.CellValueChanged += propertyGridControl1_CellValueChanged; // // svgImg16 // svgImg16.Add("actions_forbid", "image://svgimages/icon builder/actions_forbid.svg"); svgImg16.Add("editnames", "image://svgimages/dashboards/editnames.svg"); // // layoutControlGroup1 // layoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; layoutControlGroup1.GroupBordersVisible = false; layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutProperty, layoutDescription, splitterItem1 }); layoutControlGroup1.Name = "Root"; layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); layoutControlGroup1.Size = new Size(260, 602); layoutControlGroup1.TextVisible = false; // // layoutProperty // layoutProperty.Control = propertyGridControl1; layoutProperty.Location = new Point(0, 0); layoutProperty.Name = "layoutProperty"; layoutProperty.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 0); layoutProperty.Size = new Size(260, 492); layoutProperty.TextSize = new Size(0, 0); layoutProperty.TextVisible = false; // // layoutDescription // layoutDescription.Control = hydroVisualPropertyDescriptionCtrl1; layoutDescription.Location = new Point(0, 502); layoutDescription.Name = "layoutDescription"; layoutDescription.Padding = new DevExpress.XtraLayout.Utils.Padding(2, 2, 0, 2); layoutDescription.Size = new Size(260, 100); layoutDescription.TextSize = new Size(0, 0); layoutDescription.TextVisible = false; // // splitterItem1 // splitterItem1.AllowHotTrack = true; splitterItem1.Location = new Point(0, 492); splitterItem1.Name = "splitterItem1"; splitterItem1.Size = new Size(260, 10); // // barManager1 // barManager1.Bars.AddRange(new DevExpress.XtraBars.Bar[] { bar1 }); barManager1.DockControls.Add(barDockControlTop); barManager1.DockControls.Add(barDockControlBottom); barManager1.DockControls.Add(barDockControlLeft); barManager1.DockControls.Add(barDockControlRight); barManager1.Form = this; barManager1.Items.AddRange(new DevExpress.XtraBars.BarItem[] { barBtnHelp, barBtnExpandAll, barBtnCollpseAll, barBtnView }); barManager1.MaxItemId = 18; // // bar1 // bar1.BarAppearance.Hovered.BorderColor = Color.FromArgb(0, 122, 204); bar1.BarAppearance.Hovered.Options.UseBorderColor = true; bar1.BarAppearance.Pressed.BorderColor = Color.FromArgb(0, 122, 204); bar1.BarAppearance.Pressed.Options.UseBorderColor = true; bar1.BarName = "Tools"; bar1.CanDockStyle = DevExpress.XtraBars.BarCanDockStyle.Top; bar1.DockCol = 0; bar1.DockRow = 0; bar1.DockStyle = DevExpress.XtraBars.BarDockStyle.Top; bar1.FloatLocation = new Point(1899, 679); bar1.LinksPersistInfo.AddRange(new DevExpress.XtraBars.LinkPersistInfo[] { new DevExpress.XtraBars.LinkPersistInfo(barBtnExpandAll), new DevExpress.XtraBars.LinkPersistInfo(barBtnCollpseAll), new DevExpress.XtraBars.LinkPersistInfo(barBtnView), new DevExpress.XtraBars.LinkPersistInfo(barBtnHelp) }); bar1.OptionsBar.AllowQuickCustomization = false; bar1.OptionsBar.DrawBorder = false; bar1.OptionsBar.RotateWhenVertical = false; bar1.OptionsBar.UseWholeRow = true; bar1.Text = "Tools"; // // barBtnExpandAll // barBtnExpandAll.Caption = "å ¨é¨å±å¼"; barBtnExpandAll.Id = 13; barBtnExpandAll.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnExpandAll.ImageOptions.SvgImage"); barBtnExpandAll.ImageOptions.SvgImageSize = new Size(20, 20); barBtnExpandAll.Name = "barBtnExpandAll"; barBtnExpandAll.ItemClick += barBtnExpandAll_ItemClick; // // barBtnCollpseAll // barBtnCollpseAll.Caption = "å ¨é¨æå "; barBtnCollpseAll.Id = 14; barBtnCollpseAll.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnCollpseAll.ImageOptions.SvgImage"); barBtnCollpseAll.ImageOptions.SvgImageSize = new Size(20, 20); barBtnCollpseAll.Name = "barBtnCollpseAll"; barBtnCollpseAll.ItemClick += barBtnCollpseAll_ItemClick; // // barBtnView // barBtnView.Id = 17; barBtnView.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnView.ImageOptions.SvgImage"); barBtnView.Name = "barBtnView"; toolTipItem1.Text = "æ¥ç"; superToolTip1.Items.Add(toolTipItem1); barBtnView.SuperTip = superToolTip1; barBtnView.Visibility = DevExpress.XtraBars.BarItemVisibility.Never; barBtnView.ItemClick += barBtnView_ItemClick; // // barBtnHelp // barBtnHelp.Caption = "æè¿°ä¿¡æ¯"; barBtnHelp.Id = 2; barBtnHelp.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnHelp.ImageOptions.SvgImage"); barBtnHelp.ImageOptions.SvgImageSize = new Size(20, 20); barBtnHelp.Name = "barBtnHelp"; toolTipTitleItem1.Appearance.Image = (Image)resources.GetObject("resource.Image"); toolTipTitleItem1.Appearance.Options.UseImage = true; toolTipTitleItem1.ImageOptions.Image = (Image)resources.GetObject("resource.Image1"); toolTipItem2.LeftIndent = 6; toolTipItem2.Text = "æè¿°ä¿¡æ¯"; superToolTip2.Items.Add(toolTipTitleItem1); superToolTip2.Items.Add(toolTipItem2); barBtnHelp.SuperTip = superToolTip2; barBtnHelp.ItemClick += barBtnHelp_ItemClick; // // barDockControlTop // barDockControlTop.CausesValidation = false; barDockControlTop.Dock = DockStyle.Top; barDockControlTop.Location = new Point(0, 0); barDockControlTop.Manager = barManager1; barDockControlTop.Size = new Size(260, 28); // // barDockControlBottom // barDockControlBottom.CausesValidation = false; barDockControlBottom.Dock = DockStyle.Bottom; barDockControlBottom.Location = new Point(0, 630); barDockControlBottom.Manager = barManager1; barDockControlBottom.Size = new Size(260, 0); // // barDockControlLeft // barDockControlLeft.CausesValidation = false; barDockControlLeft.Dock = DockStyle.Left; barDockControlLeft.Location = new Point(0, 28); barDockControlLeft.Manager = barManager1; barDockControlLeft.Size = new Size(0, 602); // // barDockControlRight // barDockControlRight.CausesValidation = false; barDockControlRight.Dock = DockStyle.Right; barDockControlRight.Location = new Point(260, 28); barDockControlRight.Manager = barManager1; barDockControlRight.Size = new Size(0, 602); // // HydroVisualPropertyViewCtrl // AutoScaleDimensions = new SizeF(7F, 14F); AutoScaleMode = AutoScaleMode.Font; Controls.Add(layoutControl1); Controls.Add(barDockControlLeft); Controls.Add(barDockControlRight); Controls.Add(barDockControlBottom); Controls.Add(barDockControlTop); Name = "HydroVisualPropertyViewCtrl"; Size = new Size(260, 630); ((ISupportInitialize)layoutControl1).EndInit(); layoutControl1.ResumeLayout(false); ((ISupportInitialize)propertyGridControl1).EndInit(); ((ISupportInitialize)svgImg16).EndInit(); ((ISupportInitialize)layoutControlGroup1).EndInit(); ((ISupportInitialize)layoutProperty).EndInit(); ((ISupportInitialize)layoutDescription).EndInit(); ((ISupportInitialize)splitterItem1).EndInit(); ((ISupportInitialize)barManager1).EndInit(); ResumeLayout(false); PerformLayout(); } #endregion private DevExpress.XtraLayout.LayoutControl layoutControl1; private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; private DevExpress.XtraLayout.LayoutControlItem layoutProperty; private DevExpress.XtraBars.BarDockControl barDockControlTop; private DevExpress.XtraBars.BarDockControl barDockControlBottom; private DevExpress.XtraBars.BarDockControl barDockControlLeft; private DevExpress.XtraBars.BarDockControl barDockControlRight; private DevExpress.XtraLayout.SplitterItem splitterItem1; private DevExpress.XtraBars.BarManager barManager1; private DevExpress.XtraVerticalGrid.PropertyGridControl propertyGridControl1; private DevExpress.XtraBars.BarButtonItem barBtnHelp; private DevExpress.XtraBars.Bar bar1; private DevExpress.XtraBars.BarButtonItem barBtnExpandAll; private DevExpress.XtraBars.BarButtonItem barBtnCollpseAll; private DevExpress.Utils.SvgImageCollection svgImg16; private DevExpress.XtraBars.BarButtonItem barBtnView; private HydroVisualPropertyDescriptionCtrl hydroVisualPropertyDescriptionCtrl1; private DevExpress.XtraLayout.LayoutControlItem layoutDescription; } } WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyViewCtrl.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,533 @@ using DevExpress.XtraBars; using DevExpress.XtraEditors; using DevExpress.XtraEditors.Controls; using DevExpress.XtraEditors.Repository; using DevExpress.XtraLayout.Utils; using DevExpress.XtraVerticalGrid.Events; namespace Yw.WinFrmUI { public partial class HydroVisualPropertyViewCtrl : XtraUserControl { public HydroVisualPropertyViewCtrl() { InitializeComponent(); this.layoutControl1.SetupLayoutControl(); } /// <summary> /// 强è°è¿æ¥èç¹äºä»¶ /// 第ä¸ä¸ªåæ°ä¸ºæ¬èº«Code /// 第äºä¸ªåæ°ä¸ºè¿æ¥èç¹Code /// </summary> public event Action<HydroLinkViewModel, string> BlinkLinkNodeEvent; /// <summary> /// æ¥çæä»¶äºä»¶ /// </summary> public event Action<HydroVisualViewModel> HydroViewEvent; /// <summary> /// ç»å®å¯¹è±¡ /// </summary> public HydroVisualViewModel SelectedObject { get { var vm = this.propertyGridControl1.SelectedObject as HydroVisualViewModel; return vm; } set { this.barBtnView.Visibility = value == null ? BarItemVisibility.Never : BarItemVisibility.Always; this.propertyGridControl1.SelectedObject = value; } } /// <summary> /// 鿰仿°æ®æºä¸è¯»åæ°æ®ï¼å¤è§æ¢å¤åå¼å§å è½½çæ ·å /// </summary> public void UpdateData() { this.propertyGridControl1.UpdateData(); } /// <summary> /// æ´æ°æ°æ®ï¼æ ·å¼ä¸å /// </summary> public void UpdateRows() { this.propertyGridControl1.UpdateRows(); } //è·åè¡çè§å¾å¯¹è±¡ private HydroVisualViewModel GetPropertyViewModel(DevExpress.XtraVerticalGrid.Rows.BaseRow row) { if (row == null) { return default; } if (row.Level <= 1) { return this.SelectedObject; } if (row.ParentRow == null) { return this.SelectedObject; } if (row.ParentRow.Properties.Value is HydroVisualViewModel) { return row.ParentRow.Properties.Value as HydroVisualViewModel; } return GetPropertyViewModel(row.ParentRow); } //设置æè¿°æ§ä»¶çå¯è§æ§ private void SetDescriptionVisible(bool isVisible) { var visible = isVisible ? LayoutVisibility.Always : LayoutVisibility.Never; this.layoutDescription.Visibility = this.splitterItem1.Visibility = visible; } //èªå®ä¹å±æ§Headerç¼©è¿ private void propertyGridControl1_CustomDrawRowHeaderIndent(object sender, CustomDrawRowHeaderIndentEventArgs e) { } //èªå®ä¹å±æ§Headeræ¾ç¤º private void propertyGridControl1_CustomDrawRowHeaderCell(object sender, CustomDrawRowHeaderCellEventArgs e) { //åæ®µåç§° var fieldName = e.Row.Properties.FieldName.Split(new char[] { '.' }).Last(); if (string.IsNullOrEmpty(fieldName)) { return; } //屿§æè¿°å¨ var descriptor = this.propertyGridControl1.GetPropertyDescriptor(e.Row); if (descriptor != null) { //åç§° var displayNameAttri = (DisplayNameAttribute)descriptor.Attributes[typeof(DisplayNameAttribute)]; if (displayNameAttri != null && !string.IsNullOrEmpty(displayNameAttri.DisplayName)) { e.Caption = displayNameAttri.DisplayName; } } //é¢è² var vm = GetPropertyViewModel(e.Row); if (vm != null) { var propStatus = vm.GetPropStatus(fieldName); if (propStatus != null) { switch (propStatus.PropStatus) { case Yw.Hydro.ePropStatus.Error: { e.Appearance.ForeColor = Color.Red; } break; case Yw.Hydro.ePropStatus.Normal: { e.Appearance.ForeColor = Color.Black; } break; case Yw.Hydro.ePropStatus.Lack: { e.Appearance.ForeColor = Color.Green; } break; case Yw.Hydro.ePropStatus.Abnormal: { e.Appearance.ForeColor = Color.Orange; } break; default: break; } } } } //èªå®ä¹å±æ§å¼æ¾ç¤º private void propertyGridControl1_CustomDrawRowValueCell(object sender, CustomDrawRowValueCellEventArgs e) { //è¡å段åç§° var fieldName = e.Row.Properties.FieldName.Split(new char[] { '.' }).Last(); if (string.IsNullOrEmpty(fieldName)) { return; } //è¡ç±»åå ¨åç§° var fullTypeName = e.Row.Properties.RowType.FullName; if (fullTypeName == typeof(DateTime).FullName) { e.CellText = ((DateTime)e.Properties.Value).ToString("yyyy-MM-dd HH:mm:ss"); } else { var descriptor = this.propertyGridControl1.GetPropertyDescriptor(e.Row); if (descriptor != null) { var calcuPropAttri = (HydroCalcuProAttribute)descriptor.Attributes[typeof(HydroCalcuProAttribute)]; if (calcuPropAttri != null) { if (e.Properties.Value == null) { e.CellText = "å°æªè®¡ç®"; e.Appearance.ForeColor = Color.OrangeRed; } } var displayUnitAttri = (DisplayUnitAttribute)descriptor.Attributes[typeof(DisplayUnitAttribute)]; if (displayUnitAttri != null) { if (e.Properties.Value != null) { e.CellText = e.Properties.Value.ToString() + " " + displayUnitAttri.Unit; } } } } } //屿§ç¼è¾æ¡çæ¾ç¤ºä¸åæ¶ private void propertyGridControl1_ShowingEditor(object sender, CancelEventArgs e) { var rowTypeFullName = this.propertyGridControl1.FocusedRow.Properties.RowType.FullName; var fieldName = this.propertyGridControl1.FocusedRow.Properties.FieldName.Split(new char[] { '.' }).Last(); if (rowTypeFullName == typeof(Image).FullName) { e.Cancel = true; return; } var descriptor = this.propertyGridControl1.GetPropertyDescriptor(this.propertyGridControl1.FocusedRow); var showEditorInView = (ShowEditorInViewAttribute)descriptor.Attributes[typeof(ShowEditorInViewAttribute)]; if (showEditorInView == null) { e.Cancel = true; return; } if (!showEditorInView.ShowEditor) { e.Cancel = true; return; } } //ç¼è¾æ¡ private void propertyGridControl1_CustomRecordCellEdit(object sender, GetCustomRowCellEditEventArgs e) { var fieldName = e.Row.Properties.FieldName.Split(new char[] { '.' }).Last(); if (string.IsNullOrEmpty(fieldName)) { return; } var descriptor = this.propertyGridControl1.GetPropertyDescriptor(e.Row); var rowTypeFullName = e.Row.Properties.RowType.FullName; var vm = GetPropertyViewModel(e.Row); if (vm == null) { return; } #region bool if (rowTypeFullName == typeof(bool).FullName) { var ckEdit = new RepositoryItemCheckEdit(); ckEdit.CheckStyle = DevExpress.XtraEditors.Controls.CheckStyles.Standard; if (e.Row.Properties.ReadOnly == true) { ckEdit.ReadOnly = true; } e.RepositoryItem = ckEdit; } #endregion #region å¯ææ¬ var attri_multi = (MultiTextAttribute)descriptor.Attributes[typeof(MultiTextAttribute)]; if (attri_multi != null) { var memoEdit = new RepositoryItemMemoEdit(); if (e.Row.Properties.ReadOnly == true) { memoEdit.ReadOnly = true; } e.RepositoryItem = memoEdit; } #endregion #region å¾ç if (rowTypeFullName == typeof(Image).FullName) { var picEdit = new RepositoryItemPictureEdit(); picEdit.ReadOnly = true; picEdit.NullText = "空"; e.RepositoryItem = picEdit; e.Row.Expanded = true; } #endregion #region æ²çº¿ var curvePropAttri = (HydroCurveProAttribute)descriptor.Attributes[typeof(HydroCurveProAttribute)]; if (curvePropAttri != null) { var buttonEdit = new RepositoryItemButtonEdit(); buttonEdit.TextEditStyle = TextEditStyles.DisableTextEditor; buttonEdit.ButtonClick += delegate { var vm = GetPropertyViewModel(e.Row); if (vm == null) { return; } switch (curvePropAttri.CurveType) { case HydroCurve.Tank: { } break; case HydroCurve.TankVol: { } break; case HydroCurve.Pump: { } break; case HydroCurve.PumpQH: { } break; case HydroCurve.PumpQP: { var pumpViewModel = vm as HydroPumpViewModel; var curveQp = vm.HydroInfo.Curves?.Find(x => x.Code == pumpViewModel.CurveQP); var dlg = new SetHydroCurveDlg(); dlg.ReloadDataEvent += (curveInfo) => { if (vm.HydroInfo.Curves == null) { vm.HydroInfo.Curves = new List<Model.HydroCurveInfo>(); } if (curveQp != null) { vm.HydroInfo.Curves.Remove(curveQp); } vm.HydroInfo.Curves.Add(curveInfo); pumpViewModel.CurveQP = curveInfo.Code; UpdateRows(); }; dlg.SetBindingData(vm.HydroInfo, curveQp, curvePropAttri.CurveType); dlg.ShowDialog(); } break; case HydroCurve.PumpQE: { var pumpViewModel = vm as HydroPumpViewModel; var curveQe = vm.HydroInfo.Curves?.Find(x => x.Code == pumpViewModel.CurveQE); var dlg = new SetHydroCurveDlg(); dlg.ReloadDataEvent += (curveInfo) => { if (vm.HydroInfo.Curves == null) { vm.HydroInfo.Curves = new List<Model.HydroCurveInfo>(); } if (curveQe != null) { vm.HydroInfo.Curves.Remove(curveQe); } vm.HydroInfo.Curves.Add(curveInfo); pumpViewModel.CurveQE = curveInfo.Code; UpdateRows(); }; dlg.SetBindingData(vm.HydroInfo, curveQe, curvePropAttri.CurveType); dlg.ShowDialog(); } break; case HydroCurve.Valve: { } break; case HydroCurve.ValveQL: { } break; default: break; } }; e.RepositoryItem = buttonEdit; } #endregion #region æ¨¡å¼ var patternProAttri = (HydroPatternProAttribute)descriptor.Attributes[typeof(HydroPatternProAttribute)]; if (patternProAttri != null) { var buttonEdit = new RepositoryItemButtonEdit(); buttonEdit.TextEditStyle = TextEditStyles.DisableTextEditor; buttonEdit.ButtonClick += delegate { var vm = GetPropertyViewModel(e.Row); switch (patternProAttri.PatternType) { case HydroPattern.Head: { } break; case HydroPattern.Demand: { } break; } }; e.RepositoryItem = buttonEdit; } #endregion #region è¿æ¥ if (e.Row.Properties.Value != null) { var linkCodeAttri = (HydroLinkProAttribute)descriptor.Attributes[typeof(HydroLinkProAttribute)]; if (linkCodeAttri != null) { var buttonEdit = new RepositoryItemButtonEdit(); buttonEdit.TextEditStyle = TextEditStyles.DisableTextEditor; buttonEdit.ButtonClick += delegate { var vm = GetPropertyViewModel(e.Row); var vmLink = vm as HydroLinkViewModel; this.BlinkLinkNodeEvent?.Invoke(vmLink, e.Row.Properties.Value.ToString()); }; e.RepositoryItem = buttonEdit; } } #endregion } //屿§å¼æ¹å private void propertyGridControl1_CellValueChanged(object sender, DevExpress.XtraVerticalGrid.Events.CellValueChangedEventArgs e) { //var fieldName = e.Row.Properties.FieldName.Split(new char[] { '.' }).Last(); //if (string.IsNullOrEmpty(fieldName)) //{ // return; //} //var vm = GetPropertyViewModel(e.Row); //if (vm == null) //{ // return; //} //vm.UpdateVmoProperty(); } //å ¨é¨å±å¼ private void barBtnExpandAll_ItemClick(object sender, ItemClickEventArgs e) { this.propertyGridControl1.ExpandAllRows(); } //å ¨é¨æå private void barBtnCollpseAll_ItemClick(object sender, ItemClickEventArgs e) { this.propertyGridControl1.CollapseAllRows(); } //æ¥ç private void barBtnView_ItemClick(object sender, ItemClickEventArgs e) { var vm = this.SelectedObject; if (vm == null) { return; } this.HydroViewEvent?.Invoke(vm); } // æè¿° private void barBtnHelp_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var visible = this.splitterItem1.Visibility == LayoutVisibility.Always ? false : true; SetDescriptionVisible(visible); } //èç¦è¡æ¹å private void propertyGridControl1_FocusedRowChanged(object sender, FocusedRowChangedEventArgs e) { if (e.Row == null) { return; } //åæ®µåç§° var fieldName = e.Row.Properties.FieldName.Split(new char[] { '.' }).Last(); if (string.IsNullOrEmpty(fieldName)) { return; } var vm = GetPropertyViewModel(e.Row); if (vm == null) { return; } string caption = string.Empty; string descrition = string.Empty; //屿§æè¿°å¨ var descriptor = this.propertyGridControl1.GetPropertyDescriptor(e.Row); if (descriptor != null) { //åç§° var displayNameAttri = (DisplayNameAttribute)descriptor.Attributes[typeof(DisplayNameAttribute)]; if (displayNameAttri != null && !string.IsNullOrEmpty(displayNameAttri.DisplayName)) { caption = displayNameAttri.DisplayName; } //æè¿° var descritionAttri = (DescriptionAttribute)descriptor.Attributes[typeof(DescriptionAttribute)]; if (descritionAttri != null) { descrition = descritionAttri.Description; } } var propStatus = vm.GetPropStatus(fieldName); this.hydroVisualPropertyDescriptionCtrl1.SetBindingData(caption, descrition, propStatus); } } } WinFrmUI/Yw.WinFrmUI.Hydro.Core/05-property/HydroVisualPropertyViewCtrl.resx
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,237 @@ <?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> <metadata name="svgImg16.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <value>152, 17</value> </metadata> <metadata name="barManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <value>17, 17</value> </metadata> <assembly alias="DevExpress.Data.v23.2" name="DevExpress.Data.v23.2, Culture=neutral, PublicKeyToken=b88d1754d700e49a" /> <data name="barBtnExpandAll.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> <value> AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAALACAAAC77u/ PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh Y2U9InByZXNlcnZlIiBpZD0iRXhwYW5kX0ZpZWxkIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3 IDAgMCAzMiAzMiI+DQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CgkuQmxhY2t7ZmlsbDojNzI3Mjcy O30KCS5HcmVlbntmaWxsOiMwMzlDMjM7fQoJLnN0MHtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8 cG9seWdvbiBwb2ludHM9IjE0LDYgMTAsNiAxMCwyIDYsMiA2LDYgMiw2IDIsMTAgNiwxMCA2LDE0IDEw LDE0IDEwLDEwIDE0LDEwICIgY2xhc3M9IkdyZWVuIiAvPg0KICA8ZyBjbGFzcz0ic3QwIj4NCiAgICA8 cGF0aCBkPSJNMjIsNmgxMHYySDIyVjZ6IE0yMiwxMmgxMHYtMkgyMlYxMnogTTIyLDIwaDEwdi0ySDIy VjIweiBNMjIsMjRoMTB2LTJIMjJWMjR6IiBjbGFzcz0iQmxhY2siIC8+DQogIDwvZz4NCiAgPHBhdGgg ZD0iTTE4LDJoMTR2MkgxOFYyeiBNMTgsMTZoMTR2LTJIMThWMTZ6IE0xOCwyOGgxNHYtMkgxOFYyOHoi IGNsYXNzPSJCbGFjayIgLz4NCjwvc3ZnPgs= </value> </data> <data name="barBtnCollpseAll.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> <value> AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAIcCAAAC77u/ PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh Y2U9InByZXNlcnZlIiBpZD0iQ29sbGFwc2VfRmllbGQiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpu ZXcgMCAwIDMyIDMyIj4NCiAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5CbGFja3tmaWxsOiM3Mjcy NzI7fQoJLlJlZHtmaWxsOiNEMTFDMUM7fQoJLnN0MHtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8 cmVjdCB4PSIyIiB5PSI2IiB3aWR0aD0iMTIiIGhlaWdodD0iNCIgY2xhc3M9IlJlZCIgLz4NCiAgPGcg Y2xhc3M9InN0MCI+DQogICAgPHBhdGggZD0iTTIyLDZoMTB2MkgyMlY2eiBNMjIsMTJoMTB2LTJIMjJW MTJ6IE0yMiwyMGgxMHYtMkgyMlYyMHogTTIyLDI0aDEwdi0ySDIyVjI0eiIgY2xhc3M9IkJsYWNrIiAv Pg0KICA8L2c+DQogIDxwYXRoIGQ9Ik0xOCwyaDE0djJIMThWMnogTTE4LDE2aDE0di0ySDE4VjE2eiBN MTgsMjhoMTR2LTJIMThWMjh6IiBjbGFzcz0iQmxhY2siIC8+DQo8L3N2Zz4L </value> </data> <data name="barBtnView.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> <value> AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAADUCAAAC77u/ PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5CbGFja3tmaWxsOiM3MjcyNzI7fQoJLkdyZWVue2ZpbGw6IzAz OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9Cgkuc3Qwe29wYWNpdHk6MC43NTt9Cgkuc3Qxe29wYWNp dHk6MC41O30KPC9zdHlsZT4NCiAgPGcgaWQ9IlNlbmQiPg0KICAgIDxwb2x5Z29uIHBvaW50cz0iMiwy MCA4LDIyLjQgMjQsMTAgMTIsMjQgMTIsMzAgMTYuMywyNS43IDIyLDI4IDMwLDIgICIgY2xhc3M9IkJs dWUiIC8+DQogIDwvZz4NCjwvc3ZnPgs= </value> </data> <data name="barBtnHelp.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> <value> AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAABsDAAAC77u/ PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5HcmVlbntmaWxsOiMwMzlD MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh Y2l0eTowLjU7fQoJLnN0MXtkaXNwbGF5Om5vbmU7fQoJLnN0MntkaXNwbGF5OmlubGluZTtmaWxsOiMw MzlDMjM7fQoJLnN0M3tkaXNwbGF5OmlubGluZTtmaWxsOiNEMTFDMUM7fQoJLnN0NHtkaXNwbGF5Omlu bGluZTtmaWxsOiM3MjcyNzI7fQo8L3N0eWxlPg0KICA8ZyBpZD0iQWJvdXQiPg0KICAgIDxwYXRoIGQ9 Ik0xNiwyQzguMywyLDIsOC4zLDIsMTZzNi4zLDE0LDE0LDE0czE0LTYuMywxNC0xNFMyMy43LDIsMTYs MnogTTE2LDZjMS4xLDAsMiwwLjksMiwycy0wLjksMi0yLDJzLTItMC45LTItMiAgIFMxNC45LDYsMTYs NnogTTIwLDI0aC04di0yaDJ2LThoLTJ2LTJoMmg0djEwaDJWMjR6IiBjbGFzcz0iQmx1ZSIgLz4NCiAg PC9nPg0KPC9zdmc+Cw== </value> </data> <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <data name="resource.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <value> iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACR0RVh0VGl0 bGUAQ29tbWVudDtUb29sdGlwO0hpbnQ7VGlwO0Nsb3Vk08HbyQAAAm9JREFUOE91k0lMU1EUhm8QJ6xY QIWlW4kL3GAoGIIaF7rRDQsFBUUKBLFaQIK0FlocVpo40DQyU1rKIIQhYNR0oVgtpWUSlCJpcGhNQMRo dPV77nsPUkBv8uX/z7nn/vct3mW0QohQYqPEJmKzxBZiKxEmsY2QSfC9EFbR4rEb2kZhaB2TGCGoto1A T17PtWUEFTYPaBblLW6UW90orXs5SAFhTGN2w7P0B57vIm6JYc6iiCuIIcL57TdKGpyggB2sqNYJFzXa ZxZFvBLB9Zq+/ctPqEyDPCCC5T14AUfgF5omFiTmBTWPB9fzUk2etN+3hAt37TwgiqXdfornvh8wDQeQ VeNC3JVOQVf7oRVvcgVge7uAVH0fD9jJUvUD6KTkW8/moCjpwdxnPw5d7/+vNzzxwTjox4mybh6wi53U 9sLi/opr3bM4/dCBg5o+nDU5kW58LfgM7qtEn258g9LuD7hj/4RjxY95wG52vKQL1a/8KOzwQtszi8oB n6CcG3Sbtpc8UUleQ8rnKvt9OHK5lQdEs6PqDtyzf0SB9Z2IbWrFX1zRKcEv12VdM0jOt/KAGJZSYMNN urWYkovbvLjaMY0iUj6Y2zQpoGwUtcAyhcLWaaht76HIMYtfkJBVa0/KtSAppxmJHGUzEpRmpKgsUNZN 4lzdBDGG7PpxJKusiD/fKLD/1H0HBcgJ4V8Pl4oIIpKICd+XaTysbkdm9SgyCEVOA7bHptfQ3h6+T/D5 UKbT6dZBiz8wefSBS6bE/GbEZ9dDtjftEfWiiA2rZoOLYKSQSHmcskoWe8b4r8PC3NpGMPwAsfyU1x3W 6XTsLy5SM69xQkG9AAAAAElFTkSuQmCC </value> </data> <data name="resource.Image1" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <value> iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACR0RVh0VGl0 bGUAQ29tbWVudDtUb29sdGlwO0hpbnQ7VGlwO0Nsb3Vk08HbyQAAAm9JREFUOE91k0lMU1EUhm8QJ6xY QIWlW4kL3GAoGIIaF7rRDQsFBUUKBLFaQIK0FlocVpo40DQyU1rKIIQhYNR0oVgtpWUSlCJpcGhNQMRo dPV77nsPUkBv8uX/z7nn/vct3mW0QohQYqPEJmKzxBZiKxEmsY2QSfC9EFbR4rEb2kZhaB2TGCGoto1A T17PtWUEFTYPaBblLW6UW90orXs5SAFhTGN2w7P0B57vIm6JYc6iiCuIIcL57TdKGpyggB2sqNYJFzXa ZxZFvBLB9Zq+/ctPqEyDPCCC5T14AUfgF5omFiTmBTWPB9fzUk2etN+3hAt37TwgiqXdfornvh8wDQeQ VeNC3JVOQVf7oRVvcgVge7uAVH0fD9jJUvUD6KTkW8/moCjpwdxnPw5d7/+vNzzxwTjox4mybh6wi53U 9sLi/opr3bM4/dCBg5o+nDU5kW58LfgM7qtEn258g9LuD7hj/4RjxY95wG52vKQL1a/8KOzwQtszi8oB n6CcG3Sbtpc8UUleQ8rnKvt9OHK5lQdEs6PqDtyzf0SB9Z2IbWrFX1zRKcEv12VdM0jOt/KAGJZSYMNN urWYkovbvLjaMY0iUj6Y2zQpoGwUtcAyhcLWaaht76HIMYtfkJBVa0/KtSAppxmJHGUzEpRmpKgsUNZN 4lzdBDGG7PpxJKusiD/fKLD/1H0HBcgJ4V8Pl4oIIpKICd+XaTysbkdm9SgyCEVOA7bHptfQ3h6+T/D5 UKbT6dZBiz8wefSBS6bE/GbEZ9dDtjftEfWiiA2rZoOLYKSQSHmcskoWe8b4r8PC3NpGMPwAsfyU1x3W 6XTsLy5SM69xQkG9AAAAAElFTkSuQmCC </value> </data> </root> WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveCtrl.Designer.cs
@@ -73,6 +73,8 @@ xyDiagram1.AxisY.MinorCount = 1; xyDiagram1.AxisY.Tickmarks.MinorVisible = false; xyDiagram1.AxisY.VisibleInPanesSerializable = "-1"; xyDiagram1.EnableAxisXScrolling = true; xyDiagram1.EnableAxisXZooming = true; secondaryAxisy1.AxisID = 0; secondaryAxisy1.Color = Color.FromArgb(79, 129, 189); secondaryAxisy1.MinorCount = 1; @@ -118,12 +120,12 @@ chartControl1.Size = new Size(848, 569); chartControl1.TabIndex = 0; // // HydroSingleLossCurveCtrl // HydroSingleWorkingLossCurveCtrl // AutoScaleDimensions = new SizeF(7F, 14F); AutoScaleMode = AutoScaleMode.Font; Controls.Add(chartControl1); Name = "HydroSingleLossCurveCtrl"; Name = "HydroSingleWorkingLossCurveCtrl"; Size = new Size(848, 569); ((ISupportInitialize)lossBindingSource).EndInit(); ((ISupportInitialize)elevBindingSource).EndInit(); WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj
@@ -68,6 +68,9 @@ <Compile Update="04-viewmodel\07-curve\02-set\SetHydroCurveDlg.cs"> <SubType>Form</SubType> </Compile> <Compile Update="05-property\HydroVisualPropertyViewCtrl.cs"> <SubType>UserControl</SubType> </Compile> <Compile Update="05-property\HydroVisualPropertyCtrl.cs"> <SubType>UserControl</SubType> </Compile>