From 5610ef481946ff15d856f65e08b3f25aeaf3e269 Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期二, 24 九月 2024 10:54:15 +0800 Subject: [PATCH] 新增曲线设置界面 --- WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveCtrl.cs | 120 +++++ Desktop/HStation.Desktop.Xhs.Core/Properties/Resources.resx | 3 Desktop/HStation.Desktop.Xhs.Core/Resources/app.ico | 0 WinFrmUI/Yw.WinFrmUI.Bimface.Core/Yw.WinFrmUI.Bimface.Core.csproj | 4 WinFrmUI/Yw.WinFrmUI.Bimface.Core/bimface/js/ComponentsBlink.js | 24 + WinFrmUI/Yw.WinFrmUI.Core/11-global/GlobalParas.cs | 5 WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveDlg.cs | 55 ++ Desktop/HStation.Desktop.Xhs.Core/Program.cs | 1 WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveCtrl.Designer.cs | 401 +++++++++++++++++++ WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj.user | 6 WinFrmUI/Yw.WinFrmUI.Hydro.L3d.Core/01-network/00-core/Network_Method.cs | 27 WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/HydroCurveViewDlg.cs | 1 WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveDlg.resx | 120 +++++ WinFrmUI/Yw.WinFrmUI.Hydro.L3d.Core/02-panel/NetworkPanelDebug.cs | 68 ++ WinFrmUI/Yw.WinFrmUI.Bimface.Core/bimface/js/ComponentsColor.js | 7 Desktop/HStation.Desktop.Xhs.Core/Properties/Resources.Designer.cs | 10 WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveCtrl.resx | 145 ++++++ WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/HydroParterPropertyCtrl.cs | 62 ++ WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveDlg.Designer.cs | 175 ++++++++ 19 files changed, 1,202 insertions(+), 32 deletions(-) diff --git a/Desktop/HStation.Desktop.Xhs.Core/Program.cs b/Desktop/HStation.Desktop.Xhs.Core/Program.cs index 1075ad2..c8821c8 100644 --- a/Desktop/HStation.Desktop.Xhs.Core/Program.cs +++ b/Desktop/HStation.Desktop.Xhs.Core/Program.cs @@ -81,6 +81,7 @@ Assembly.Load("HStation.BLL.Xhs.Core") ); DbFirstHelper.Initial(); + Yw.WinFrmUI.GlobalParas.AppIcon = HStation.Desktop.Xhs.Core.Properties.Resources.app; Application.Run(new MainForm()); } } diff --git a/Desktop/HStation.Desktop.Xhs.Core/Properties/Resources.Designer.cs b/Desktop/HStation.Desktop.Xhs.Core/Properties/Resources.Designer.cs index 85ddcb0..79b3359 100644 --- a/Desktop/HStation.Desktop.Xhs.Core/Properties/Resources.Designer.cs +++ b/Desktop/HStation.Desktop.Xhs.Core/Properties/Resources.Designer.cs @@ -61,6 +61,16 @@ } /// <summary> + /// 鏌ユ壘绫讳技浜� (鍥炬爣) 鐨� System.Drawing.Icon 绫诲瀷鐨勬湰鍦板寲璧勬簮銆� + /// </summary> + internal static System.Drawing.Icon app { + get { + object obj = ResourceManager.GetObject("app", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + + /// <summary> /// 鏌ユ壘 System.Drawing.Bitmap 绫诲瀷鐨勬湰鍦板寲璧勬簮銆� /// </summary> internal static System.Drawing.Bitmap loginbg { diff --git a/Desktop/HStation.Desktop.Xhs.Core/Properties/Resources.resx b/Desktop/HStation.Desktop.Xhs.Core/Properties/Resources.resx index ac77954..f971b8f 100644 --- a/Desktop/HStation.Desktop.Xhs.Core/Properties/Resources.resx +++ b/Desktop/HStation.Desktop.Xhs.Core/Properties/Resources.resx @@ -118,6 +118,9 @@ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> + <data name="app" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>..\Resources\app.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> + </data> <data name="loginbg" type="System.Resources.ResXFileRef, System.Windows.Forms"> <value>..\Resources\loginbg.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> </data> diff --git a/Desktop/HStation.Desktop.Xhs.Core/Resources/app.ico b/Desktop/HStation.Desktop.Xhs.Core/Resources/app.ico new file mode 100644 index 0000000..fd64892 --- /dev/null +++ b/Desktop/HStation.Desktop.Xhs.Core/Resources/app.ico Binary files differ diff --git a/WinFrmUI/Yw.WinFrmUI.Bimface.Core/Yw.WinFrmUI.Bimface.Core.csproj b/WinFrmUI/Yw.WinFrmUI.Bimface.Core/Yw.WinFrmUI.Bimface.Core.csproj index a4a7d58..ec1e492 100644 --- a/WinFrmUI/Yw.WinFrmUI.Bimface.Core/Yw.WinFrmUI.Bimface.Core.csproj +++ b/WinFrmUI/Yw.WinFrmUI.Bimface.Core/Yw.WinFrmUI.Bimface.Core.csproj @@ -29,6 +29,7 @@ <None Remove="bimface\html\Interop3d.html" /> <None Remove="bimface\js\Background.js" /> <None Remove="bimface\js\CameraStatus.js" /> + <None Remove="bimface\js\ComponentsBlink.js" /> <None Remove="bimface\js\ComponentsColor.js" /> <None Remove="bimface\js\ComponentsSelected.js" /> <None Remove="bimface\js\ComponentsTranslucent.js" /> @@ -58,6 +59,9 @@ <Content Include="bimface\js\ComponentsColor.js"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> + <Content Include="bimface\js\ComponentsBlink.js"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> <Content Include="bimface\js\ComponentsSelected.js"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> diff --git a/WinFrmUI/Yw.WinFrmUI.Bimface.Core/bimface/js/ComponentsBlink.js b/WinFrmUI/Yw.WinFrmUI.Bimface.Core/bimface/js/ComponentsBlink.js new file mode 100644 index 0000000..feb9044 --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Bimface.Core/bimface/js/ComponentsBlink.js @@ -0,0 +1,24 @@ +锘�// *************** 鏋勪欢銆佸閮ㄦ瀯浠躲�佹埧闂村己璋冩晥鏋� *************** +var _isBlinkComponentsActivated = false; + +//璁剧疆寮鸿皟鏋勪欢 +//#32D3A6 0.8 +function setBlinkComponents(ids, color, transparency) { + if (_isBlinkComponentsActivated) { + clearBlinkComponents(); + } + // 鏋勪欢闂儊 + _viewer.addBlinkComponentsById(ids); + _viewer.setBlinkColor(new Glodon.Web.Graphics.Color(color, transparency)); + _viewer.enableBlinkComponents(true); + _viewer.setBlinkIntervalTime(500); + _viewer.render(); + _isBlinkComponentsActivated = true; +} + +//娓呴櫎寮鸿皟鏋勪欢 +function clearBlinkComponents() { + _viewer.clearAllBlinkComponents(); + _viewer.render(); + _isBlinkComponentsActivated = false; +} \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Bimface.Core/bimface/js/ComponentsColor.js b/WinFrmUI/Yw.WinFrmUI.Bimface.Core/bimface/js/ComponentsColor.js index 6c23088..a6d43ca 100644 --- a/WinFrmUI/Yw.WinFrmUI.Bimface.Core/bimface/js/ComponentsColor.js +++ b/WinFrmUI/Yw.WinFrmUI.Bimface.Core/bimface/js/ComponentsColor.js @@ -1,4 +1,6 @@ -锘�//鏀瑰彉閮ㄤ欢棰滆壊 +锘�// *************** 鏋勪欢鐫�鑹� *************** + +//鏀瑰彉閮ㄤ欢棰滆壊 function overrideComponentsColor(colorSettings) { for (var i = 0; i < colorSettings.length; i++) { var item = colorSettings[i]; @@ -13,4 +15,5 @@ function restoreComponentsColor(ids) { _viewer.restoreComponentsColorById(ids); _viewer.render(); -} \ No newline at end of file +} + diff --git a/WinFrmUI/Yw.WinFrmUI.Core/11-global/GlobalParas.cs b/WinFrmUI/Yw.WinFrmUI.Core/11-global/GlobalParas.cs index c780a53..bee34a0 100644 --- a/WinFrmUI/Yw.WinFrmUI.Core/11-global/GlobalParas.cs +++ b/WinFrmUI/Yw.WinFrmUI.Core/11-global/GlobalParas.cs @@ -5,6 +5,9 @@ /// </summary> public class GlobalParas { - + /// <summary> + /// + /// </summary> + public static Icon AppIcon { get; set; } } } diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/HydroCurveViewDlg.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/HydroCurveViewDlg.cs index 0723c49..7b91904 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/HydroCurveViewDlg.cs +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/HydroCurveViewDlg.cs @@ -5,6 +5,7 @@ public HydroCurveViewDlg() { InitializeComponent(); + this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon; } /// <summary> diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveCtrl.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveCtrl.Designer.cs new file mode 100644 index 0000000..68c0905 --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveCtrl.Designer.cs @@ -0,0 +1,401 @@ +锘縩amespace Yw.WinFrmUI +{ + partial class SetHydroCurveCtrl + { + /// <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 Component 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() + { + components = new Container(); + DevExpress.XtraEditors.Controls.EditorButtonImageOptions editorButtonImageOptions1 = new DevExpress.XtraEditors.Controls.EditorButtonImageOptions(); + ComponentResourceManager resources = new ComponentResourceManager(typeof(SetHydroCurveCtrl)); + DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject1 = new DevExpress.Utils.SerializableAppearanceObject(); + DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject2 = new DevExpress.Utils.SerializableAppearanceObject(); + DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject3 = new DevExpress.Utils.SerializableAppearanceObject(); + DevExpress.Utils.SerializableAppearanceObject serializableAppearanceObject4 = new DevExpress.Utils.SerializableAppearanceObject(); + splitContainerControl1 = new DevExpress.XtraEditors.SplitContainerControl(); + layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + btnImportByExcel = new DevExpress.XtraEditors.SimpleButton(); + txtCurveType = new DevExpress.XtraEditors.TextEdit(); + btnSave = new DevExpress.XtraEditors.SimpleButton(); + txtDescription = new DevExpress.XtraEditors.MemoEdit(); + txtName = new DevExpress.XtraEditors.TextEdit(); + gridControl1 = new DevExpress.XtraGrid.GridControl(); + hydroCurvePointViewModelBindingSource = new BindingSource(components); + gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView(); + colX = new DevExpress.XtraGrid.Columns.GridColumn(); + colY = new DevExpress.XtraGrid.Columns.GridColumn(); + colDelete = new DevExpress.XtraGrid.Columns.GridColumn(); + repositoryItemButtonEdit1 = new DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit(); + txtCode = new DevExpress.XtraEditors.TextEdit(); + Root = new DevExpress.XtraLayout.LayoutControlGroup(); + layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem(); + layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem(); + layoutControlItem5 = new DevExpress.XtraLayout.LayoutControlItem(); + layoutControlItem8 = new DevExpress.XtraLayout.LayoutControlItem(); + emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); + layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem(); + hydroCurveViewCtrl1 = new HydroCurveViewCtrl(); + ((ISupportInitialize)splitContainerControl1).BeginInit(); + ((ISupportInitialize)splitContainerControl1.Panel1).BeginInit(); + splitContainerControl1.Panel1.SuspendLayout(); + ((ISupportInitialize)splitContainerControl1.Panel2).BeginInit(); + splitContainerControl1.Panel2.SuspendLayout(); + splitContainerControl1.SuspendLayout(); + ((ISupportInitialize)layoutControl1).BeginInit(); + layoutControl1.SuspendLayout(); + ((ISupportInitialize)txtCurveType.Properties).BeginInit(); + ((ISupportInitialize)txtDescription.Properties).BeginInit(); + ((ISupportInitialize)txtName.Properties).BeginInit(); + ((ISupportInitialize)gridControl1).BeginInit(); + ((ISupportInitialize)hydroCurvePointViewModelBindingSource).BeginInit(); + ((ISupportInitialize)gridView1).BeginInit(); + ((ISupportInitialize)repositoryItemButtonEdit1).BeginInit(); + ((ISupportInitialize)txtCode.Properties).BeginInit(); + ((ISupportInitialize)Root).BeginInit(); + ((ISupportInitialize)layoutControlItem2).BeginInit(); + ((ISupportInitialize)layoutControlItem3).BeginInit(); + ((ISupportInitialize)layoutControlItem4).BeginInit(); + ((ISupportInitialize)layoutControlItem5).BeginInit(); + ((ISupportInitialize)layoutControlItem8).BeginInit(); + ((ISupportInitialize)emptySpaceItem1).BeginInit(); + ((ISupportInitialize)layoutControlItem1).BeginInit(); + ((ISupportInitialize)layoutControlItem6).BeginInit(); + SuspendLayout(); + // + // splitContainerControl1 + // + splitContainerControl1.Dock = DockStyle.Fill; + splitContainerControl1.Location = new Point(0, 0); + splitContainerControl1.Name = "splitContainerControl1"; + // + // splitContainerControl1.Panel1 + // + splitContainerControl1.Panel1.Controls.Add(layoutControl1); + splitContainerControl1.Panel1.Text = "Panel1"; + // + // splitContainerControl1.Panel2 + // + splitContainerControl1.Panel2.Controls.Add(hydroCurveViewCtrl1); + splitContainerControl1.Panel2.Text = "Panel2"; + splitContainerControl1.Size = new Size(913, 563); + splitContainerControl1.SplitterPosition = 295; + splitContainerControl1.TabIndex = 0; + // + // layoutControl1 + // + layoutControl1.Controls.Add(btnImportByExcel); + layoutControl1.Controls.Add(txtCurveType); + layoutControl1.Controls.Add(btnSave); + layoutControl1.Controls.Add(txtDescription); + layoutControl1.Controls.Add(txtName); + layoutControl1.Controls.Add(gridControl1); + layoutControl1.Controls.Add(txtCode); + layoutControl1.Dock = DockStyle.Fill; + layoutControl1.Location = new Point(0, 0); + layoutControl1.Name = "layoutControl1"; + layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(683, 274, 650, 400); + layoutControl1.Root = Root; + layoutControl1.Size = new Size(295, 563); + layoutControl1.TabIndex = 0; + layoutControl1.Text = "layoutControl1"; + // + // btnImportByExcel + // + btnImportByExcel.Location = new Point(97, 539); + btnImportByExcel.Name = "btnImportByExcel"; + btnImportByExcel.Size = new Size(96, 22); + btnImportByExcel.StyleController = layoutControl1; + btnImportByExcel.TabIndex = 13; + btnImportByExcel.Text = "Excel瀵煎叆"; + // + // txtCurveType + // + txtCurveType.Location = new Point(42, 50); + txtCurveType.Name = "txtCurveType"; + txtCurveType.Properties.ReadOnly = true; + txtCurveType.Size = new Size(251, 20); + txtCurveType.StyleController = layoutControl1; + txtCurveType.TabIndex = 12; + // + // btnSave + // + btnSave.Location = new Point(197, 539); + btnSave.Name = "btnSave"; + btnSave.Size = new Size(96, 22); + btnSave.StyleController = layoutControl1; + btnSave.TabIndex = 11; + btnSave.Text = "淇濆瓨"; + btnSave.Click += btnSave_Click; + // + // txtDescription + // + txtDescription.Location = new Point(42, 74); + txtDescription.Name = "txtDescription"; + txtDescription.Size = new Size(251, 49); + txtDescription.StyleController = layoutControl1; + txtDescription.TabIndex = 8; + // + // txtName + // + txtName.Location = new Point(42, 26); + txtName.Name = "txtName"; + txtName.Size = new Size(251, 20); + txtName.StyleController = layoutControl1; + txtName.TabIndex = 7; + // + // gridControl1 + // + gridControl1.DataSource = hydroCurvePointViewModelBindingSource; + gridControl1.Location = new Point(2, 127); + gridControl1.MainView = gridView1; + gridControl1.Name = "gridControl1"; + gridControl1.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { repositoryItemButtonEdit1 }); + gridControl1.Size = new Size(291, 408); + gridControl1.TabIndex = 6; + gridControl1.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { gridView1 }); + // + // hydroCurvePointViewModelBindingSource + // + hydroCurvePointViewModelBindingSource.DataSource = typeof(HydroCurvePointViewModel); + // + // gridView1 + // + gridView1.Appearance.ViewCaption.Options.UseTextOptions = true; + gridView1.Appearance.ViewCaption.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near; + gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { colX, colY, colDelete }); + gridView1.GridControl = gridControl1; + gridView1.Name = "gridView1"; + gridView1.OptionsView.ShowViewCaption = true; + gridView1.ViewCaption = "鏇茬嚎鐐�"; + gridView1.RowCellClick += gridView1_RowCellClick; + // + // colX + // + colX.FieldName = "X"; + colX.Name = "colX"; + colX.Visible = true; + colX.VisibleIndex = 0; + // + // colY + // + colY.FieldName = "Y"; + colY.Name = "colY"; + colY.Visible = true; + colY.VisibleIndex = 1; + // + // colDelete + // + colDelete.Caption = "鍒犻櫎"; + colDelete.ColumnEdit = repositoryItemButtonEdit1; + colDelete.MaxWidth = 50; + colDelete.MinWidth = 50; + colDelete.Name = "colDelete"; + colDelete.OptionsColumn.AllowEdit = false; + colDelete.Visible = true; + colDelete.VisibleIndex = 2; + colDelete.Width = 50; + // + // repositoryItemButtonEdit1 + // + repositoryItemButtonEdit1.AutoHeight = false; + editorButtonImageOptions1.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("editorButtonImageOptions1.SvgImage"); + editorButtonImageOptions1.SvgImageSize = new Size(20, 20); + repositoryItemButtonEdit1.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph, "", -1, true, true, false, editorButtonImageOptions1, new DevExpress.Utils.KeyShortcut(Keys.None), serializableAppearanceObject1, serializableAppearanceObject2, serializableAppearanceObject3, serializableAppearanceObject4, "", null, null, DevExpress.Utils.ToolTipAnchor.Default) }); + repositoryItemButtonEdit1.Name = "repositoryItemButtonEdit1"; + repositoryItemButtonEdit1.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.HideTextEditor; + // + // txtCode + // + txtCode.Location = new Point(42, 2); + txtCode.Name = "txtCode"; + txtCode.Properties.ReadOnly = true; + txtCode.Size = new Size(251, 20); + txtCode.StyleController = layoutControl1; + txtCode.TabIndex = 5; + // + // Root + // + Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + Root.GroupBordersVisible = false; + Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem2, layoutControlItem3, layoutControlItem4, layoutControlItem5, layoutControlItem8, emptySpaceItem1, layoutControlItem1, layoutControlItem6 }); + Root.Name = "Root"; + Root.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); + Root.Size = new Size(295, 563); + Root.TextVisible = false; + // + // layoutControlItem2 + // + layoutControlItem2.Control = txtCode; + layoutControlItem2.Location = new Point(0, 0); + layoutControlItem2.Name = "layoutControlItem2"; + layoutControlItem2.Size = new Size(295, 24); + layoutControlItem2.Text = "缂栫爜:"; + layoutControlItem2.TextSize = new Size(28, 14); + // + // layoutControlItem3 + // + layoutControlItem3.Control = gridControl1; + layoutControlItem3.Location = new Point(0, 125); + layoutControlItem3.Name = "layoutControlItem3"; + layoutControlItem3.Size = new Size(295, 412); + layoutControlItem3.TextSize = new Size(0, 0); + layoutControlItem3.TextVisible = false; + // + // layoutControlItem4 + // + layoutControlItem4.Control = txtName; + layoutControlItem4.Location = new Point(0, 24); + layoutControlItem4.Name = "layoutControlItem4"; + layoutControlItem4.Size = new Size(295, 24); + layoutControlItem4.Text = "鍚嶇О:"; + layoutControlItem4.TextSize = new Size(28, 14); + // + // layoutControlItem5 + // + layoutControlItem5.Control = txtDescription; + layoutControlItem5.Location = new Point(0, 72); + layoutControlItem5.Name = "layoutControlItem5"; + layoutControlItem5.Size = new Size(295, 53); + layoutControlItem5.Text = "璇存槑:"; + layoutControlItem5.TextSize = new Size(28, 14); + // + // layoutControlItem8 + // + layoutControlItem8.Control = btnSave; + layoutControlItem8.Location = new Point(195, 537); + layoutControlItem8.MaxSize = new Size(100, 0); + layoutControlItem8.MinSize = new Size(100, 26); + layoutControlItem8.Name = "layoutControlItem8"; + layoutControlItem8.Size = new Size(100, 26); + layoutControlItem8.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + layoutControlItem8.TextSize = new Size(0, 0); + layoutControlItem8.TextVisible = false; + // + // emptySpaceItem1 + // + emptySpaceItem1.AllowHotTrack = false; + emptySpaceItem1.Location = new Point(0, 537); + emptySpaceItem1.Name = "emptySpaceItem1"; + emptySpaceItem1.Size = new Size(95, 26); + emptySpaceItem1.TextSize = new Size(0, 0); + // + // layoutControlItem1 + // + layoutControlItem1.Control = txtCurveType; + layoutControlItem1.Location = new Point(0, 48); + layoutControlItem1.Name = "layoutControlItem1"; + layoutControlItem1.Size = new Size(295, 24); + layoutControlItem1.Text = "绫诲瀷:"; + layoutControlItem1.TextSize = new Size(28, 14); + // + // layoutControlItem6 + // + layoutControlItem6.Control = btnImportByExcel; + layoutControlItem6.Location = new Point(95, 537); + layoutControlItem6.MaxSize = new Size(100, 26); + layoutControlItem6.MinSize = new Size(100, 26); + layoutControlItem6.Name = "layoutControlItem6"; + layoutControlItem6.Size = new Size(100, 26); + layoutControlItem6.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + layoutControlItem6.TextSize = new Size(0, 0); + layoutControlItem6.TextVisible = false; + // + // hydroCurveViewCtrl1 + // + hydroCurveViewCtrl1.Dock = DockStyle.Fill; + hydroCurveViewCtrl1.Location = new Point(0, 0); + hydroCurveViewCtrl1.Name = "hydroCurveViewCtrl1"; + hydroCurveViewCtrl1.Size = new Size(608, 563); + hydroCurveViewCtrl1.TabIndex = 0; + hydroCurveViewCtrl1.TitleTextX = "Axis of arguments"; + hydroCurveViewCtrl1.TitleTextY = "Axis of values"; + // + // SetHydroCurveCtrl + // + AutoScaleDimensions = new SizeF(7F, 14F); + AutoScaleMode = AutoScaleMode.Font; + Controls.Add(splitContainerControl1); + Name = "SetHydroCurveCtrl"; + Size = new Size(913, 563); + ((ISupportInitialize)splitContainerControl1.Panel1).EndInit(); + splitContainerControl1.Panel1.ResumeLayout(false); + ((ISupportInitialize)splitContainerControl1.Panel2).EndInit(); + splitContainerControl1.Panel2.ResumeLayout(false); + ((ISupportInitialize)splitContainerControl1).EndInit(); + splitContainerControl1.ResumeLayout(false); + ((ISupportInitialize)layoutControl1).EndInit(); + layoutControl1.ResumeLayout(false); + ((ISupportInitialize)txtCurveType.Properties).EndInit(); + ((ISupportInitialize)txtDescription.Properties).EndInit(); + ((ISupportInitialize)txtName.Properties).EndInit(); + ((ISupportInitialize)gridControl1).EndInit(); + ((ISupportInitialize)hydroCurvePointViewModelBindingSource).EndInit(); + ((ISupportInitialize)gridView1).EndInit(); + ((ISupportInitialize)repositoryItemButtonEdit1).EndInit(); + ((ISupportInitialize)txtCode.Properties).EndInit(); + ((ISupportInitialize)Root).EndInit(); + ((ISupportInitialize)layoutControlItem2).EndInit(); + ((ISupportInitialize)layoutControlItem3).EndInit(); + ((ISupportInitialize)layoutControlItem4).EndInit(); + ((ISupportInitialize)layoutControlItem5).EndInit(); + ((ISupportInitialize)layoutControlItem8).EndInit(); + ((ISupportInitialize)emptySpaceItem1).EndInit(); + ((ISupportInitialize)layoutControlItem1).EndInit(); + ((ISupportInitialize)layoutControlItem6).EndInit(); + ResumeLayout(false); + } + + #endregion + + private DevExpress.XtraEditors.SplitContainerControl splitContainerControl1; + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraLayout.LayoutControlGroup Root; + private HydroCurveViewCtrl hydroCurveViewCtrl1; + private DevExpress.XtraGrid.GridControl gridControl1; + private DevExpress.XtraGrid.Views.Grid.GridView gridView1; + private DevExpress.XtraEditors.TextEdit txtCode; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3; + private BindingSource hydroCurvePointViewModelBindingSource; + private DevExpress.XtraGrid.Columns.GridColumn colX; + private DevExpress.XtraGrid.Columns.GridColumn colY; + private DevExpress.XtraEditors.SimpleButton btnSave; + private DevExpress.XtraEditors.MemoEdit txtDescription; + private DevExpress.XtraEditors.TextEdit txtName; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem4; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem5; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem8; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; + private DevExpress.XtraEditors.SimpleButton btnImportByExcel; + private DevExpress.XtraEditors.TextEdit txtCurveType; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem6; + private DevExpress.XtraGrid.Columns.GridColumn colDelete; + private DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit repositoryItemButtonEdit1; + } +} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveCtrl.cs new file mode 100644 index 0000000..54a86b2 --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveCtrl.cs @@ -0,0 +1,120 @@ +锘縰sing DevExpress.XtraEditors; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using System.Windows.Forms.VisualStyles; + +namespace Yw.WinFrmUI +{ + public partial class SetHydroCurveCtrl : DevExpress.XtraEditors.XtraUserControl + { + public SetHydroCurveCtrl() + { + InitializeComponent(); + this.gridView1.SetBindingLimitEditView(25); + this.gridView1.ShowViewCaption(25); + } + + /// <summary> + /// 淇濆瓨鏇茬嚎淇℃伅浜嬩欢 + /// </summary> + public event Action<Yw.Model.HydroCurveInfo> SaveCurveInfoEvent; + + private Yw.Model.HydroModelInfo _hydroInfo = null;//姘村姏淇℃伅 + private Yw.Model.HydroCurveInfo _curveInfo = null;//鏇茬嚎淇℃伅 + private BindingList<HydroCurvePointViewModel> _allBindingList = null; + + /// <summary> + /// + /// </summary> + public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroCurveInfo curveInfo, string curveType) + { + if (hydroInfo == null) + { + return; + } + _hydroInfo = hydroInfo; + _curveInfo = curveInfo; + if (_curveInfo == null) + { + _curveInfo = new Model.HydroCurveInfo(); + _curveInfo.Catalog = Yw.Hydro.ParterCatalog.Curve; + _curveInfo.Code = Yw.Untity.UniqueHelper.CreateFromFirst("curve", _hydroInfo.GetAllParters().Select(x => x.Code).ToList()); + _curveInfo.CurveType = curveType; + } + this.txtCode.EditValue = _curveInfo.Code; + this.txtName.EditValue = _curveInfo.Name; + this.txtDescription.EditValue = _curveInfo.Description; + switch (curveType) + { + case HydroCurve.PumpQH: + { + this.txtCurveType.EditValue = "姘存车娴侀噺鎵▼鏇茬嚎"; + this.colX.Caption = "Q(m鲁/h)"; + this.colY.Caption = "H(m)"; + this.hydroCurveViewCtrl1.TitleTextX = "娴侀噺锛坢鲁/h锛�"; + this.hydroCurveViewCtrl1.TitleTextY = "鎵▼锛坢锛�"; + } + break; + case HydroCurve.PumpQP: + { + this.txtCurveType.EditValue = "姘存车娴侀噺鍔熺巼鏇茬嚎"; + this.colX.Caption = "Q(m鲁/h)"; + this.colY.Caption = "P(kW)"; + this.hydroCurveViewCtrl1.TitleTextX = "娴侀噺锛坢鲁/h锛�"; + this.hydroCurveViewCtrl1.TitleTextY = "鍔熺巼锛坘W锛�"; + } + break; + case HydroCurve.PumpQE: + { + this.txtCurveType.EditValue = "姘存车娴侀噺鏁堢巼鏇茬嚎"; + this.colX.Caption = "Q(m鲁/h)"; + this.colY.Caption = "E(%)"; + this.hydroCurveViewCtrl1.TitleTextX = "娴侀噺锛坢鲁/h锛�"; + this.hydroCurveViewCtrl1.TitleTextY = "鏁堢巼锛�%锛�"; + } + break; + default: break; + } + _allBindingList = new BindingList<HydroCurvePointViewModel>(); + _curveInfo.CurveData?.ForEach(x => + { + var pt = new HydroCurvePointViewModel(x.X, x.Y); + _allBindingList.Add(pt); + }); + this.hydroCurvePointViewModelBindingSource.DataSource = _allBindingList; + this.hydroCurvePointViewModelBindingSource.ResetBindings(false); + } + + //淇濆瓨 + private void btnSave_Click(object sender, EventArgs e) + { + _curveInfo.Name = this.txtName.Text.Trim(); + _curveInfo.Description = this.txtDescription.Text.Trim(); + _curveInfo.CurveData = _allBindingList?.Select(x => new Model.Hydro.CurvePoint(x.X, x.Y)).ToList(); + this.hydroCurveViewCtrl1.SetBindingData(_allBindingList.ToList()); + this.SaveCurveInfoEvent?.Invoke(_curveInfo); + } + + //鍒犻櫎 + private void gridView1_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e) + { + if (e.RowHandle < 0) + { + return; + } + if (e.Column == this.colDelete) + { + _allBindingList.RemoveAt(e.RowHandle); + } + } + + + } +} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveCtrl.resx b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveCtrl.resx new file mode 100644 index 0000000..8c68786 --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveCtrl.resx @@ -0,0 +1,145 @@ +锘�<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <metadata name="hydroCurvePointViewModelBindingSource.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="editorButtonImageOptions1.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAD0DAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJs + YWNre2ZpbGw6IzcyNzI3Mjt9CgkuQmx1ZXtmaWxsOiMxMTc3RDc7fQoJLkdyZWVue2ZpbGw6IzAzOUMy + Mzt9CgkuWWVsbG93e2ZpbGw6I0ZGQjExNTt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh + Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQo8L3N0eWxlPg0KICA8ZyBpZD0iRGVsZXRlIj4N + CiAgICA8Zz4NCiAgICAgIDxwYXRoIGQ9Ik0xOC44LDE2bDYuOS02LjljMC40LTAuNCwwLjQtMSwwLTEu + NGwtMS40LTEuNGMtMC40LTAuNC0xLTAuNC0xLjQsMEwxNiwxMy4yTDkuMSw2LjNjLTAuNC0wLjQtMS0w + LjQtMS40LDAgICAgTDYuMyw3LjdjLTAuNCwwLjQtMC40LDEsMCwxLjRsNi45LDYuOWwtNi45LDYuOWMt + MC40LDAuNC0wLjQsMSwwLDEuNGwxLjQsMS40YzAuNCwwLjQsMSwwLjQsMS40LDBsNi45LTYuOWw2Ljks + Ni45ICAgIGMwLjQsMC40LDEsMC40LDEuNCwwbDEuNC0xLjRjMC40LTAuNCwwLjQtMSwwLTEuNEwxOC44 + LDE2eiIgY2xhc3M9IlJlZCIgLz4NCiAgICA8L2c+DQogIDwvZz4NCjwvc3ZnPgs= +</value> + </data> +</root> \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveDlg.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveDlg.Designer.cs new file mode 100644 index 0000000..db3c153 --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveDlg.Designer.cs @@ -0,0 +1,175 @@ +锘縩amespace Yw.WinFrmUI +{ + partial class SetHydroCurveDlg + { + /// <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() + { + layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + Root = new DevExpress.XtraLayout.LayoutControlGroup(); + setHydroCurveCtrl1 = new SetHydroCurveCtrl(); + layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + btnOk = new DevExpress.XtraEditors.SimpleButton(); + layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); + btnCancel = new DevExpress.XtraEditors.SimpleButton(); + layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem(); + emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); + ((ISupportInitialize)layoutControl1).BeginInit(); + layoutControl1.SuspendLayout(); + ((ISupportInitialize)Root).BeginInit(); + ((ISupportInitialize)layoutControlItem1).BeginInit(); + ((ISupportInitialize)layoutControlItem2).BeginInit(); + ((ISupportInitialize)layoutControlItem3).BeginInit(); + ((ISupportInitialize)emptySpaceItem1).BeginInit(); + SuspendLayout(); + // + // layoutControl1 + // + layoutControl1.Controls.Add(btnCancel); + layoutControl1.Controls.Add(btnOk); + layoutControl1.Controls.Add(setHydroCurveCtrl1); + layoutControl1.Dock = DockStyle.Fill; + layoutControl1.Location = new Point(0, 0); + layoutControl1.Name = "layoutControl1"; + layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(1270, 380, 650, 400); + layoutControl1.Root = Root; + layoutControl1.Size = new Size(987, 638); + layoutControl1.TabIndex = 0; + layoutControl1.Text = "layoutControl1"; + // + // Root + // + Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + Root.GroupBordersVisible = false; + Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1, layoutControlItem2, layoutControlItem3, emptySpaceItem1 }); + Root.Name = "Root"; + Root.Size = new Size(987, 638); + Root.TextVisible = false; + // + // setHydroCurveCtrl1 + // + setHydroCurveCtrl1.Location = new Point(12, 12); + setHydroCurveCtrl1.Name = "setHydroCurveCtrl1"; + setHydroCurveCtrl1.Size = new Size(963, 588); + setHydroCurveCtrl1.TabIndex = 4; + // + // layoutControlItem1 + // + layoutControlItem1.Control = setHydroCurveCtrl1; + layoutControlItem1.Location = new Point(0, 0); + layoutControlItem1.Name = "layoutControlItem1"; + layoutControlItem1.Size = new Size(967, 592); + layoutControlItem1.TextSize = new Size(0, 0); + layoutControlItem1.TextVisible = false; + // + // btnOk + // + btnOk.Appearance.BackColor = DevExpress.LookAndFeel.DXSkinColors.FillColors.Primary; + btnOk.Appearance.Options.UseBackColor = true; + btnOk.Location = new Point(739, 604); + btnOk.Name = "btnOk"; + btnOk.Size = new Size(116, 22); + btnOk.StyleController = layoutControl1; + btnOk.TabIndex = 5; + btnOk.Text = "纭畾"; + btnOk.Click += btnOk_Click; + // + // layoutControlItem2 + // + layoutControlItem2.Control = btnOk; + layoutControlItem2.Location = new Point(727, 592); + layoutControlItem2.MaxSize = new Size(120, 26); + layoutControlItem2.MinSize = new Size(120, 26); + layoutControlItem2.Name = "layoutControlItem2"; + layoutControlItem2.Size = new Size(120, 26); + layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + layoutControlItem2.TextSize = new Size(0, 0); + layoutControlItem2.TextVisible = false; + // + // btnCancel + // + btnCancel.Appearance.BackColor = DevExpress.LookAndFeel.DXSkinColors.FillColors.Warning; + btnCancel.Appearance.Options.UseBackColor = true; + btnCancel.DialogResult = DialogResult.Cancel; + btnCancel.Location = new Point(859, 604); + btnCancel.Name = "btnCancel"; + btnCancel.Size = new Size(116, 22); + btnCancel.StyleController = layoutControl1; + btnCancel.TabIndex = 6; + btnCancel.Text = "鍙栨秷"; + // + // layoutControlItem3 + // + layoutControlItem3.Control = btnCancel; + layoutControlItem3.Location = new Point(847, 592); + layoutControlItem3.MaxSize = new Size(120, 26); + layoutControlItem3.MinSize = new Size(120, 26); + layoutControlItem3.Name = "layoutControlItem3"; + layoutControlItem3.Size = new Size(120, 26); + layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + layoutControlItem3.TextSize = new Size(0, 0); + layoutControlItem3.TextVisible = false; + // + // emptySpaceItem1 + // + emptySpaceItem1.AllowHotTrack = false; + emptySpaceItem1.Location = new Point(0, 592); + emptySpaceItem1.Name = "emptySpaceItem1"; + emptySpaceItem1.Size = new Size(727, 26); + emptySpaceItem1.TextSize = new Size(0, 0); + // + // SetHydroCurveDlg + // + AutoScaleDimensions = new SizeF(7F, 14F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(987, 638); + Controls.Add(layoutControl1); + Name = "SetHydroCurveDlg"; + StartPosition = FormStartPosition.CenterParent; + Text = "璁剧疆鏇茬嚎"; + ((ISupportInitialize)layoutControl1).EndInit(); + layoutControl1.ResumeLayout(false); + ((ISupportInitialize)Root).EndInit(); + ((ISupportInitialize)layoutControlItem1).EndInit(); + ((ISupportInitialize)layoutControlItem2).EndInit(); + ((ISupportInitialize)layoutControlItem3).EndInit(); + ((ISupportInitialize)emptySpaceItem1).EndInit(); + ResumeLayout(false); + } + + #endregion + + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private DevExpress.XtraEditors.SimpleButton btnCancel; + private DevExpress.XtraEditors.SimpleButton btnOk; + private SetHydroCurveCtrl setHydroCurveCtrl1; + private DevExpress.XtraLayout.LayoutControlGroup Root; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; + } +} \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveDlg.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveDlg.cs new file mode 100644 index 0000000..0744a01 --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveDlg.cs @@ -0,0 +1,55 @@ +锘縰sing DevExpress.XtraEditors; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Yw.WinFrmUI +{ + public partial class SetHydroCurveDlg : DevExpress.XtraEditors.XtraForm + { + public SetHydroCurveDlg() + { + InitializeComponent(); + this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon; + this.setHydroCurveCtrl1.SaveCurveInfoEvent += SetHydroCurveCtrl1_SaveCurveInfoEvent; + } + + /// <summary> + /// + /// </summary> + public event Action<Yw.Model.HydroCurveInfo> ReloadDataEvent; + + private Yw.Model.HydroCurveInfo _curveInfo; + + /// <summary> + /// + /// </summary> + public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, Yw.Model.HydroCurveInfo curveInfo, string curveType) + { + this.setHydroCurveCtrl1.SetBindingData(hydroInfo, curveInfo, curveType); + } + + private void SetHydroCurveCtrl1_SaveCurveInfoEvent(Model.HydroCurveInfo obj) + { + _curveInfo = obj; + } + + // + private void btnOk_Click(object sender, EventArgs e) + { + if (_curveInfo == null) + { + return; + } + this.ReloadDataEvent?.Invoke(_curveInfo); + this.DialogResult = DialogResult.OK; + this.Close(); + } + } +} \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveDlg.resx b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveDlg.resx new file mode 100644 index 0000000..af32865 --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/06-curve/SetHydroCurveDlg.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> \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/HydroParterPropertyCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/HydroParterPropertyCtrl.cs index 4266e39..581705a 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/HydroParterPropertyCtrl.cs +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/HydroParterPropertyCtrl.cs @@ -276,23 +276,69 @@ { var vmPump = vm as HydroPumpPropertyViewModel; var curveQh = hydroInfo.Curves?.Find(x => x.Code == vmPump.CurveQH); - var curvePts = curveQh?.CurveData?.Select(x => new HydroCurvePointViewModel(x.X, x.Y)).ToList(); - var dlg = new HydroCurveViewDlg(); - dlg.Text = $"{vm.Name}-娴侀噺鎵▼鏇茬嚎"; - dlg.TitleTextX = "娴侀噺锛坢鲁/h锛�"; - dlg.TitleTextY = "鎵▼锛坢锛�"; - dlg.SetBindingData(curvePts); + var dlg = new SetHydroCurveDlg(); + dlg.ReloadDataEvent += (curveInfo) => + { + if (hydroInfo.Curves == null) + { + hydroInfo.Curves = new List<Model.HydroCurveInfo>(); + } + if (curveQh != null) + { + hydroInfo.Curves.Remove(curveQh); + } + hydroInfo.Curves.Add(curveInfo); + vmPump.CurveQH = curveInfo.Code; + UpdateRows(); + }; + dlg.SetBindingData(hydroInfo, curveQh, curvePro.CurveType); dlg.ShowDialog(); } break; case HydroCurve.PumpQP: { - + var vmPump = vm as HydroPumpPropertyViewModel; + var curveQp = hydroInfo.Curves?.Find(x => x.Code == vmPump.CurveQP); + var dlg = new SetHydroCurveDlg(); + dlg.ReloadDataEvent += (curveInfo) => + { + if (hydroInfo.Curves == null) + { + hydroInfo.Curves = new List<Model.HydroCurveInfo>(); + } + if (curveQp != null) + { + hydroInfo.Curves.Remove(curveQp); + } + hydroInfo.Curves.Add(curveInfo); + vmPump.CurveQP = curveInfo.Code; + UpdateRows(); + }; + dlg.SetBindingData(hydroInfo, curveQp, curvePro.CurveType); + dlg.ShowDialog(); } break; case HydroCurve.PumpQE: { - + var vmPump = vm as HydroPumpPropertyViewModel; + var curveQe = hydroInfo.Curves?.Find(x => x.Code == vmPump.CurveQE); + var dlg = new SetHydroCurveDlg(); + dlg.ReloadDataEvent += (curveInfo) => + { + if (hydroInfo.Curves == null) + { + hydroInfo.Curves = new List<Model.HydroCurveInfo>(); + } + if (curveQe != null) + { + hydroInfo.Curves.Remove(curveQe); + } + hydroInfo.Curves.Add(curveInfo); + vmPump.CurveQE = curveInfo.Code; + UpdateRows(); + }; + dlg.SetBindingData(hydroInfo, curveQe, curvePro.CurveType); + dlg.ShowDialog(); } break; case HydroCurve.Valve: diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj.user b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj.user index 71b6a28..b9923a4 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj.user +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj.user @@ -10,6 +10,12 @@ <Compile Update="03-property\06-curve\HydroCurveViewDlg.cs"> <SubType>Form</SubType> </Compile> + <Compile Update="03-property\06-curve\SetHydroCurveCtrl.cs"> + <SubType>UserControl</SubType> + </Compile> + <Compile Update="03-property\06-curve\SetHydroCurveDlg.cs"> + <SubType>Form</SubType> + </Compile> <Compile Update="04-parter\00-core\HydroParterListCtrl.cs"> <SubType>UserControl</SubType> </Compile> diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.L3d.Core/01-network/00-core/Network_Method.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.L3d.Core/01-network/00-core/Network_Method.cs index 527a3ae..325afdc 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.L3d.Core/01-network/00-core/Network_Method.cs +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.L3d.Core/01-network/00-core/Network_Method.cs @@ -22,21 +22,28 @@ /// </summary> public BoundingBox3d GetBoundingBox() { - var bd = new BoundingBox3d(); - bd.Min = new Point3d(); - bd.Max = new Point3d(); + var minX = float.MaxValue; + var minY = float.MaxValue; + var minZ = float.MaxValue; + var maxX = float.MinValue; + var maxY = float.MinValue; + var maxZ = float.MinValue; foreach (var node in this.Nodes) { - bd.Min.X = Math.Min(bd.Min.X, node.Position.X); - bd.Max.X = Math.Max(bd.Max.X, node.Position.X); - bd.Min.Y = Math.Min(bd.Min.Y, node.Position.Y); - bd.Max.Y = Math.Max(bd.Max.Y, node.Position.Y); - bd.Min.Z = Math.Min(bd.Min.Z, node.Position.Z); - bd.Max.Z = Math.Max(bd.Max.Z, node.Position.Z); + minX = Math.Min(minX, node.Position.X); + minY = Math.Min(minY, node.Position.Y); + minZ = Math.Min(minZ, node.Position.Z); + maxX = Math.Max(maxX, node.Position.X); + maxY = Math.Max(maxY, node.Position.Y); + maxZ = Math.Max(maxZ, node.Position.Z); } - return bd; + return new BoundingBox3d() + { + Min = new Point3d(minX, minY, minZ), + Max = new Point3d(maxX, maxY, maxZ) + }; } diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.L3d.Core/02-panel/NetworkPanelDebug.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.L3d.Core/02-panel/NetworkPanelDebug.cs index 395a117..d5c22cc 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.L3d.Core/02-panel/NetworkPanelDebug.cs +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.L3d.Core/02-panel/NetworkPanelDebug.cs @@ -1,4 +1,5 @@ 锘縰sing DevExpress.Mvvm.Native; +using DevExpress.XtraCharts.GLGraphics; using SharpGL; namespace Yw.WinFrmUI.HydroL3d @@ -53,36 +54,81 @@ { return; } - SharpGL.OpenGL gl = this.openGLControl1.OpenGL; + OpenGL gl = openGLControl1.OpenGL; + gl.Enable(OpenGL.GL_DEPTH_TEST); + //娓呴櫎娣卞害缂撳瓨 gl.Clear(OpenGL.GL_COLOR_BUFFER_BIT | OpenGL.GL_DEPTH_BUFFER_BIT); + + // 璁剧疆褰撳墠鐭╅樀妯″紡,瀵规姇褰辩煩闃靛簲鐢ㄩ殢鍚庣殑鐭╅樀鎿嶄綔 + gl.MatrixMode(OpenGL.GL_PROJECTION); + + // 閲嶇疆褰撳墠鎸囧畾鐨勭煩闃典负鍗曚綅鐭╅樀,灏嗗綋鍓嶇殑鐢ㄦ埛鍧愭爣绯荤殑鍘熺偣绉诲埌浜嗗睆骞曚腑蹇� + gl.LoadIdentity(); + + // 鍒涘缓閫忚鎶曞奖鍙樻崲 + gl.Perspective(45f, openGLControl1.Width / openGLControl1.Height, 15696f, 38395f); + + + // 璁剧疆褰撳墠鐭╅樀涓烘ā鍨嬭鍥剧煩闃� + gl.MatrixMode(OpenGL.GL_MODELVIEW); //閲嶇疆褰撳墠鎸囧畾鐨勭煩闃典负鍗曚綅鐭╅樀,灏嗗綋鍓嶇殑鐢ㄦ埛鍧愭爣绯荤殑鍘熺偣绉诲埌浜嗗睆骞曚腑蹇� gl.LoadIdentity(); - gl.Translate(_paras.Translation.X, _paras.Translation.Y, _paras.Translation.Z); + // gl.Translate(-_paras.Ceneter.X, -_paras.Ceneter.Y, -_paras.Ceneter.Z); + //gl.Translate(0, 0, -5f); - gl.Rotate(_paras.Rotation.X, 1, 0, 0); - gl.Rotate(_paras.Rotation.Y, 0, 1, 0); - gl.Rotate(_paras.Rotation.Z, 0, 0, 1); + //gl.Rotate(_paras.Rotation.X, 1, 0, 0); + // gl.Rotate(_paras.Rotation.Y, 0, 1, 0); + //gl.Rotate(_paras.Rotation.Z, 0, 0, 1); + gl.Color(1.0f, 1.0f, 1.0f); foreach (var pipe in _network.Pipes) { var startPosition = pipe.StartPosition; var endPosition = pipe.EndPosition; gl.Begin(OpenGL.GL_LINES); - gl.Color(1.0f, 1.0f, 1.0f); + gl.Vertex(startPosition.X, startPosition.Y, startPosition.Z);//宸﹂《鐐� gl.Vertex(endPosition.X, endPosition.Y, endPosition.Z);//鍙抽《鐐� gl.End(); } - gl.Begin(OpenGL.GL_LINES); gl.Color(1.0f, 1.0f, 1.0f); + gl.Begin(OpenGL.GL_LINES); + gl.Vertex(_paras.BoundingBox.Min.X, _paras.BoundingBox.Min.Y, _paras.BoundingBox.Min.Z);//宸﹂《鐐� gl.Vertex(_paras.BoundingBox.Max.X, _paras.BoundingBox.Max.Y, _paras.BoundingBox.Max.Z);//鍙抽《鐐� gl.End(); + #region 鐐瑰埌绾� + gl.Begin(OpenGL.GL_LINES); + gl.Color(1.0f, 1.0f, 1.0f); + gl.Vertex(-2.0f, 0.0f, 0.0f);//宸﹂《鐐� + gl.Vertex(2.0f, 2.0f, 0.0f);//鍙抽《鐐� + gl.End(); + #endregion + + var minX = _paras.BoundingBox.Min.X; + var maxX = _paras.BoundingBox.Max.X; + var minY = _paras.BoundingBox.Min.Y; + var maxY = _paras.BoundingBox.Max.Y; + var minZ = _paras.BoundingBox.Min.Z; + var maxZ = _paras.BoundingBox.Max.Z; + + float distance = Math.Max(maxX - minX, Math.Max(maxY - minY, maxZ - minZ)) * 1.5f; + + var centerX = (minX + maxX) / 2f; + var centerY = (minY + maxY) / 2f; + var centerZ = (minZ + maxZ) / 2f; + + var cameraX = centerX + distance; + var cameraY = centerY + distance; + var cameraZ = centerZ + distance; + + //gl.LookAt(cameraX, cameraY, cameraZ, centerX, centerY, centerZ, 0, 1, 0); + gl.LookAt(-27484f, -12576f, 8833f, 23675f, 23079f, -7200f, 0f, 0f, 1f); gl.Flush(); //寮哄埗鍒锋柊 } @@ -100,8 +146,8 @@ { return; } - _paras.Perspective.Aspect = this.openGLControl1.Width / (float)this.openGLControl1.Height; - Reset(); + // _paras.Perspective.Aspect = this.openGLControl1.Width / (float)this.openGLControl1.Height; + //Reset(); } //閲嶇疆 @@ -123,7 +169,7 @@ gl.Perspective(_paras.Perspective.Fovy, _paras.Perspective.Aspect, _paras.Perspective.Near, _paras.Perspective.Far); // 瑙嗙偣鍙樻崲 - gl.LookAt(_paras.LookAt.Eye.X, _paras.LookAt.Eye.Y, _paras.LookAt.Eye.Z, _paras.LookAt.Center.X, _paras.LookAt.Center.Y, _paras.LookAt.Center.Z, _paras.LookAt.Up.X, _paras.LookAt.Up.Y, _paras.LookAt.Up.Z); + // gl.LookAt(_paras.LookAt.Eye.X, _paras.LookAt.Eye.Y, _paras.LookAt.Eye.Z, _paras.LookAt.Center.X, _paras.LookAt.Center.Y, _paras.LookAt.Center.Z, _paras.LookAt.Up.X, _paras.LookAt.Up.Y, _paras.LookAt.Up.Z); // 璁剧疆褰撳墠鐭╅樀涓烘ā鍨嬭鍥剧煩闃� gl.MatrixMode(OpenGL.GL_MODELVIEW); @@ -135,7 +181,7 @@ { return; } - Reset(); + //Reset(); } } } -- Gitblit v1.9.3