diff --git a/Bin/net40/SunnyUI.Demo.exe b/Bin/net40/SunnyUI.Demo.exe
index 13c9ca7c..764100ee 100644
Binary files a/Bin/net40/SunnyUI.Demo.exe and b/Bin/net40/SunnyUI.Demo.exe differ
diff --git a/Bin/net40/SunnyUI.dll b/Bin/net40/SunnyUI.dll
index cf931810..f730dc63 100644
Binary files a/Bin/net40/SunnyUI.dll and b/Bin/net40/SunnyUI.dll differ
diff --git a/Bin/net45/SunnyUI.dll b/Bin/net45/SunnyUI.dll
index 0f55c9f0..56dd16d8 100644
Binary files a/Bin/net45/SunnyUI.dll and b/Bin/net45/SunnyUI.dll differ
diff --git a/Bin/net5.0-windows/SunnyUI.dll b/Bin/net5.0-windows/SunnyUI.dll
index 6767e6fd..e8170121 100644
Binary files a/Bin/net5.0-windows/SunnyUI.dll and b/Bin/net5.0-windows/SunnyUI.dll differ
diff --git a/Bin/net5.0-windows/ref/SunnyUI.dll b/Bin/net5.0-windows/ref/SunnyUI.dll
index 94d24f5c..0791ac7d 100644
Binary files a/Bin/net5.0-windows/ref/SunnyUI.dll and b/Bin/net5.0-windows/ref/SunnyUI.dll differ
diff --git a/Bin/netcoreapp3.1/SunnyUI.dll b/Bin/netcoreapp3.1/SunnyUI.dll
index 9d2b85e7..7f7dc79b 100644
Binary files a/Bin/netcoreapp3.1/SunnyUI.dll and b/Bin/netcoreapp3.1/SunnyUI.dll differ
diff --git a/SunnyUI.Demo/Controls/FPipe.cs b/SunnyUI.Demo/Controls/FPipe.cs
index 187f491a..c4a1df5c 100644
--- a/SunnyUI.Demo/Controls/FPipe.cs
+++ b/SunnyUI.Demo/Controls/FPipe.cs
@@ -43,5 +43,20 @@ namespace Sunny.UI.Demo
{
uiPipe8.Active = uiPipe9.Active = uiPipe7.Active = uiPipe10.Active = uiPipe12.Active = uiValve1.Active;
}
+
+ private void uiValve3_ActiveChanged(object sender, System.EventArgs e)
+ {
+ uiPipe20.Active = uiPipe3.Active = uiValve3.Active;
+ }
+
+ private void uiValve2_ActiveChanged(object sender, System.EventArgs e)
+ {
+ uiPipe5.Active = uiPipe11.Active = uiPipe1.Active = uiValve2.Active;
+ }
+
+ private void uiValve4_ActiveChanged(object sender, System.EventArgs e)
+ {
+ uiPipe22.Active = uiPipe15.Active = uiValve4.Active;
+ }
}
}
diff --git a/SunnyUI.Demo/Controls/FPipe.designer.cs b/SunnyUI.Demo/Controls/FPipe.designer.cs
index 2d28cfe8..ea523d9d 100644
--- a/SunnyUI.Demo/Controls/FPipe.designer.cs
+++ b/SunnyUI.Demo/Controls/FPipe.designer.cs
@@ -52,6 +52,11 @@ namespace Sunny.UI.Demo
this.uiValve1 = new Sunny.UI.UIValve();
this.uiPipe19 = new Sunny.UI.UIPipe();
this.uiValve2 = new Sunny.UI.UIValve();
+ this.uiValve3 = new Sunny.UI.UIValve();
+ this.uiValve4 = new Sunny.UI.UIValve();
+ this.uiPipe20 = new Sunny.UI.UIPipe();
+ this.uiPipe21 = new Sunny.UI.UIPipe();
+ this.uiPipe22 = new Sunny.UI.UIPipe();
this.SuspendLayout();
//
// timer1
@@ -109,7 +114,7 @@ namespace Sunny.UI.Demo
this.uiPipe2.Name = "uiPipe2";
this.uiPipe2.Radius = 16;
this.uiPipe2.RadiusSides = Sunny.UI.UICornerRadiusSides.None;
- this.uiPipe2.Size = new System.Drawing.Size(149, 16);
+ this.uiPipe2.Size = new System.Drawing.Size(73, 16);
this.uiPipe2.Style = Sunny.UI.UIStyle.Custom;
this.uiPipe2.StyleCustomMode = true;
this.uiPipe2.TabIndex = 5;
@@ -255,12 +260,12 @@ namespace Sunny.UI.Demo
this.uiPipe5.FlowColor = System.Drawing.Color.SkyBlue;
this.uiPipe5.FlowSpeed = 10;
this.uiPipe5.Font = new System.Drawing.Font("微软雅黑", 12F);
- this.uiPipe5.Location = new System.Drawing.Point(720, 63);
+ this.uiPipe5.Location = new System.Drawing.Point(716, 175);
this.uiPipe5.MinimumSize = new System.Drawing.Size(1, 1);
this.uiPipe5.Name = "uiPipe5";
this.uiPipe5.Radius = 16;
this.uiPipe5.RadiusSides = Sunny.UI.UICornerRadiusSides.RightBottom;
- this.uiPipe5.Size = new System.Drawing.Size(16, 248);
+ this.uiPipe5.Size = new System.Drawing.Size(16, 136);
this.uiPipe5.Style = Sunny.UI.UIStyle.Custom;
this.uiPipe5.StyleCustomMode = true;
this.uiPipe5.TabIndex = 19;
@@ -274,9 +279,9 @@ namespace Sunny.UI.Demo
this.uiPipe6.FlowColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(128)))), ((int)(((byte)(255)))));
this.uiPipe6.FlowInterval = 16;
this.uiPipe6.FlowSize = 28;
- this.uiPipe6.FlowSpeed = 20;
+ this.uiPipe6.FlowSpeed = 12;
this.uiPipe6.Font = new System.Drawing.Font("微软雅黑", 12F);
- this.uiPipe6.Location = new System.Drawing.Point(64, 391);
+ this.uiPipe6.Location = new System.Drawing.Point(63, 384);
this.uiPipe6.MinimumSize = new System.Drawing.Size(1, 1);
this.uiPipe6.Name = "uiPipe6";
this.uiPipe6.Radius = 16;
@@ -295,9 +300,9 @@ namespace Sunny.UI.Demo
this.uiPipe13.FlowColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(128)))), ((int)(((byte)(255)))));
this.uiPipe13.FlowInterval = 16;
this.uiPipe13.FlowSize = 28;
- this.uiPipe13.FlowSpeed = 20;
+ this.uiPipe13.FlowSpeed = 12;
this.uiPipe13.Font = new System.Drawing.Font("微软雅黑", 12F);
- this.uiPipe13.Location = new System.Drawing.Point(78, 490);
+ this.uiPipe13.Location = new System.Drawing.Point(77, 483);
this.uiPipe13.MinimumSize = new System.Drawing.Size(1, 1);
this.uiPipe13.Name = "uiPipe13";
this.uiPipe13.Radius = 16;
@@ -316,15 +321,15 @@ namespace Sunny.UI.Demo
this.uiPipe14.FlowColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(128)))), ((int)(((byte)(255)))));
this.uiPipe14.FlowInterval = 16;
this.uiPipe14.FlowSize = 28;
- this.uiPipe14.FlowSpeed = 20;
+ this.uiPipe14.FlowSpeed = 12;
this.uiPipe14.Font = new System.Drawing.Font("微软雅黑", 12F);
- this.uiPipe14.Location = new System.Drawing.Point(78, 531);
+ this.uiPipe14.Location = new System.Drawing.Point(77, 524);
this.uiPipe14.MinimumSize = new System.Drawing.Size(1, 1);
this.uiPipe14.Name = "uiPipe14";
this.uiPipe14.Radius = 16;
this.uiPipe14.RadiusSides = Sunny.UI.UICornerRadiusSides.None;
this.uiPipe14.RectColor = System.Drawing.Color.DarkGray;
- this.uiPipe14.Size = new System.Drawing.Size(298, 16);
+ this.uiPipe14.Size = new System.Drawing.Size(134, 16);
this.uiPipe14.Style = Sunny.UI.UIStyle.Custom;
this.uiPipe14.StyleCustomMode = true;
this.uiPipe14.TabIndex = 22;
@@ -339,9 +344,9 @@ namespace Sunny.UI.Demo
this.uiPipe15.FlowDirection = Sunny.UI.UIPipe.UIFlowDirection.Reverse;
this.uiPipe15.FlowInterval = 16;
this.uiPipe15.FlowSize = 28;
- this.uiPipe15.FlowSpeed = 20;
+ this.uiPipe15.FlowSpeed = 12;
this.uiPipe15.Font = new System.Drawing.Font("微软雅黑", 12F);
- this.uiPipe15.Location = new System.Drawing.Point(375, 391);
+ this.uiPipe15.Location = new System.Drawing.Point(374, 384);
this.uiPipe15.MinimumSize = new System.Drawing.Size(1, 1);
this.uiPipe15.Name = "uiPipe15";
this.uiPipe15.Radius = 16;
@@ -361,10 +366,10 @@ namespace Sunny.UI.Demo
this.uiPipe16.FlowColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(128)))));
this.uiPipe16.FlowInterval = 16;
this.uiPipe16.FlowSize = 28;
- this.uiPipe16.FlowSpeed = 20;
+ this.uiPipe16.FlowSpeed = 12;
this.uiPipe16.Font = new System.Drawing.Font("微软雅黑", 12F);
this.uiPipe16.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
- this.uiPipe16.Location = new System.Drawing.Point(538, 391);
+ this.uiPipe16.Location = new System.Drawing.Point(536, 384);
this.uiPipe16.MinimumSize = new System.Drawing.Size(1, 1);
this.uiPipe16.Name = "uiPipe16";
this.uiPipe16.Radius = 16;
@@ -383,10 +388,10 @@ namespace Sunny.UI.Demo
this.uiPipe17.FlowColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(128)))));
this.uiPipe17.FlowInterval = 16;
this.uiPipe17.FlowSize = 28;
- this.uiPipe17.FlowSpeed = 20;
+ this.uiPipe17.FlowSpeed = 12;
this.uiPipe17.Font = new System.Drawing.Font("微软雅黑", 12F);
this.uiPipe17.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
- this.uiPipe17.Location = new System.Drawing.Point(552, 458);
+ this.uiPipe17.Location = new System.Drawing.Point(551, 451);
this.uiPipe17.MinimumSize = new System.Drawing.Size(1, 1);
this.uiPipe17.Name = "uiPipe17";
this.uiPipe17.Radius = 16;
@@ -406,10 +411,10 @@ namespace Sunny.UI.Demo
this.uiPipe18.FlowColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(128)))));
this.uiPipe18.FlowInterval = 16;
this.uiPipe18.FlowSize = 28;
- this.uiPipe18.FlowSpeed = 20;
+ this.uiPipe18.FlowSpeed = 12;
this.uiPipe18.Font = new System.Drawing.Font("微软雅黑", 12F);
this.uiPipe18.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
- this.uiPipe18.Location = new System.Drawing.Point(717, 458);
+ this.uiPipe18.Location = new System.Drawing.Point(716, 451);
this.uiPipe18.MinimumSize = new System.Drawing.Size(1, 1);
this.uiPipe18.Name = "uiPipe18";
this.uiPipe18.Radius = 16;
@@ -424,7 +429,6 @@ namespace Sunny.UI.Demo
// uiValve1
//
this.uiValve1.Active = true;
- this.uiValve1.Direction = Sunny.UI.UIValve.UIValveDirection.Left;
this.uiValve1.Font = new System.Drawing.Font("微软雅黑", 12F);
this.uiValve1.Location = new System.Drawing.Point(255, 122);
this.uiValve1.MinimumSize = new System.Drawing.Size(1, 1);
@@ -433,6 +437,7 @@ namespace Sunny.UI.Demo
this.uiValve1.Size = new System.Drawing.Size(60, 60);
this.uiValve1.TabIndex = 27;
this.uiValve1.Text = "uiValve1";
+ this.uiValve1.ValveColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0)))));
this.uiValve1.ActiveChanged += new System.EventHandler(this.uiValve1_ActiveChanged);
//
// uiPipe19
@@ -459,13 +464,103 @@ namespace Sunny.UI.Demo
this.uiValve2.Active = true;
this.uiValve2.Direction = Sunny.UI.UIValve.UIValveDirection.Right;
this.uiValve2.Font = new System.Drawing.Font("微软雅黑", 12F);
- this.uiValve2.Location = new System.Drawing.Point(710, 122);
+ this.uiValve2.Location = new System.Drawing.Point(706, 122);
this.uiValve2.MinimumSize = new System.Drawing.Size(1, 1);
this.uiValve2.Name = "uiValve2";
this.uiValve2.PipeSize = 20;
this.uiValve2.Size = new System.Drawing.Size(60, 60);
this.uiValve2.TabIndex = 29;
this.uiValve2.Text = "uiValve2";
+ this.uiValve2.ActiveChanged += new System.EventHandler(this.uiValve2_ActiveChanged);
+ //
+ // uiValve3
+ //
+ this.uiValve3.Active = true;
+ this.uiValve3.Direction = Sunny.UI.UIValve.UIValveDirection.Top;
+ this.uiValve3.Font = new System.Drawing.Font("微软雅黑", 12F);
+ this.uiValve3.Location = new System.Drawing.Point(94, 160);
+ this.uiValve3.MinimumSize = new System.Drawing.Size(1, 1);
+ this.uiValve3.Name = "uiValve3";
+ this.uiValve3.PipeSize = 20;
+ this.uiValve3.Size = new System.Drawing.Size(60, 60);
+ this.uiValve3.TabIndex = 30;
+ this.uiValve3.Text = "uiValve3";
+ this.uiValve3.ValveColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(0)))));
+ this.uiValve3.ActiveChanged += new System.EventHandler(this.uiValve3_ActiveChanged);
+ //
+ // uiValve4
+ //
+ this.uiValve4.Active = true;
+ this.uiValve4.Direction = Sunny.UI.UIValve.UIValveDirection.Bottom;
+ this.uiValve4.Font = new System.Drawing.Font("微软雅黑", 12F);
+ this.uiValve4.Location = new System.Drawing.Point(186, 514);
+ this.uiValve4.MinimumSize = new System.Drawing.Size(1, 1);
+ this.uiValve4.Name = "uiValve4";
+ this.uiValve4.PipeSize = 20;
+ this.uiValve4.RectColor = System.Drawing.Color.DarkGray;
+ this.uiValve4.Size = new System.Drawing.Size(60, 60);
+ this.uiValve4.TabIndex = 31;
+ this.uiValve4.Text = "uiValve4";
+ this.uiValve4.ValveColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(128)))), ((int)(((byte)(255)))));
+ this.uiValve4.ActiveChanged += new System.EventHandler(this.uiValve4_ActiveChanged);
+ //
+ // uiPipe20
+ //
+ this.uiPipe20.Active = true;
+ this.uiPipe20.BackColor = System.Drawing.Color.Transparent;
+ this.uiPipe20.FlowColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(128)))));
+ this.uiPipe20.FlowSpeed = 10;
+ this.uiPipe20.Font = new System.Drawing.Font("微软雅黑", 12F);
+ this.uiPipe20.Location = new System.Drawing.Point(124, 194);
+ this.uiPipe20.MinimumSize = new System.Drawing.Size(1, 1);
+ this.uiPipe20.Name = "uiPipe20";
+ this.uiPipe20.Radius = 16;
+ this.uiPipe20.RadiusSides = Sunny.UI.UICornerRadiusSides.None;
+ this.uiPipe20.Size = new System.Drawing.Size(73, 16);
+ this.uiPipe20.Style = Sunny.UI.UIStyle.Custom;
+ this.uiPipe20.StyleCustomMode = true;
+ this.uiPipe20.TabIndex = 32;
+ this.uiPipe20.Text = "uiPipe20";
+ //
+ // uiPipe21
+ //
+ this.uiPipe21.Active = true;
+ this.uiPipe21.BackColor = System.Drawing.Color.Transparent;
+ this.uiPipe21.Direction = Sunny.UI.UILine.LineDirection.Vertical;
+ this.uiPipe21.FlowColor = System.Drawing.Color.SkyBlue;
+ this.uiPipe21.FlowSpeed = 10;
+ this.uiPipe21.Font = new System.Drawing.Font("微软雅黑", 12F);
+ this.uiPipe21.Location = new System.Drawing.Point(716, 63);
+ this.uiPipe21.MinimumSize = new System.Drawing.Size(1, 1);
+ this.uiPipe21.Name = "uiPipe21";
+ this.uiPipe21.Radius = 16;
+ this.uiPipe21.RadiusSides = Sunny.UI.UICornerRadiusSides.None;
+ this.uiPipe21.Size = new System.Drawing.Size(16, 74);
+ this.uiPipe21.Style = Sunny.UI.UIStyle.Custom;
+ this.uiPipe21.StyleCustomMode = true;
+ this.uiPipe21.TabIndex = 33;
+ this.uiPipe21.Text = "uiPipe21";
+ //
+ // uiPipe22
+ //
+ this.uiPipe22.Active = true;
+ this.uiPipe22.BackColor = System.Drawing.Color.Transparent;
+ this.uiPipe22.FlowColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(128)))), ((int)(((byte)(255)))));
+ this.uiPipe22.FlowInterval = 16;
+ this.uiPipe22.FlowSize = 28;
+ this.uiPipe22.FlowSpeed = 12;
+ this.uiPipe22.Font = new System.Drawing.Font("微软雅黑", 12F);
+ this.uiPipe22.Location = new System.Drawing.Point(242, 524);
+ this.uiPipe22.MinimumSize = new System.Drawing.Size(1, 1);
+ this.uiPipe22.Name = "uiPipe22";
+ this.uiPipe22.Radius = 16;
+ this.uiPipe22.RadiusSides = Sunny.UI.UICornerRadiusSides.None;
+ this.uiPipe22.RectColor = System.Drawing.Color.DarkGray;
+ this.uiPipe22.Size = new System.Drawing.Size(134, 16);
+ this.uiPipe22.Style = Sunny.UI.UIStyle.Custom;
+ this.uiPipe22.StyleCustomMode = true;
+ this.uiPipe22.TabIndex = 34;
+ this.uiPipe22.Text = "uiPipe22";
//
// FPipe
//
@@ -473,7 +568,12 @@ namespace Sunny.UI.Demo
this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 21F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(855, 642);
+ this.Controls.Add(this.uiValve4);
this.Controls.Add(this.uiValve2);
+ this.Controls.Add(this.uiPipe21);
+ this.Controls.Add(this.uiPipe3);
+ this.Controls.Add(this.uiValve3);
+ this.Controls.Add(this.uiPipe20);
this.Controls.Add(this.uiValve1);
this.Controls.Add(this.uiPipe19);
this.Controls.Add(this.uiPipe18);
@@ -486,7 +586,6 @@ namespace Sunny.UI.Demo
this.Controls.Add(this.uiPipe7);
this.Controls.Add(this.uiPipe8);
this.Controls.Add(this.uiPipe9);
- this.Controls.Add(this.uiPipe3);
this.Controls.Add(this.uiPipe4);
this.Controls.Add(this.uiPipe2);
this.Controls.Add(this.uiPipe10);
@@ -494,6 +593,7 @@ namespace Sunny.UI.Demo
this.Controls.Add(this.uiPipe14);
this.Controls.Add(this.uiPipe17);
this.Controls.Add(this.uiPipe13);
+ this.Controls.Add(this.uiPipe22);
this.Name = "FPipe";
this.Padding = new System.Windows.Forms.Padding(0, 35, 0, 0);
this.ShowTitle = true;
@@ -526,6 +626,11 @@ namespace Sunny.UI.Demo
private UIValve uiValve1;
private UIPipe uiPipe19;
private UIValve uiValve2;
+ private UIValve uiValve3;
+ private UIValve uiValve4;
+ private UIPipe uiPipe20;
+ private UIPipe uiPipe21;
+ private UIPipe uiPipe22;
}
}
diff --git a/SunnyUI/Controls/UIValve.cs b/SunnyUI/Controls/UIValve.cs
index 4cc71eee..e3b295cf 100644
--- a/SunnyUI/Controls/UIValve.cs
+++ b/SunnyUI/Controls/UIValve.cs
@@ -1,4 +1,25 @@
-using System;
+/******************************************************************************
+ * SunnyUI 开源控件库、工具类库、扩展类库、多页面开发框架。
+ * CopyRight (C) 2012-2021 ShenYongHua(沈永华).
+ * QQ群:56829229 QQ:17612584 EMail:SunnyUI@QQ.Com
+ *
+ * Blog: https://www.cnblogs.com/yhuse
+ * Gitee: https://gitee.com/yhuse/SunnyUI
+ * GitHub: https://github.com/yhuse/SunnyUI
+ *
+ * SunnyUI.dll can be used for free under the GPL-3.0 license.
+ * If you use this code, please keep this note.
+ * 如果您使用此代码,请保留此说明。
+ ******************************************************************************
+ * 文件名称: UIValve.cs
+ * 文件说明: 阀门
+ * 当前版本: V3.0
+ * 创建日期: 2021-08-08
+ *
+ * 2021-08-08: V3.0.5 增加阀门控件
+******************************************************************************/
+
+using System;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Drawing2D;
@@ -18,6 +39,7 @@ namespace Sunny.UI
rectColor = Color.Silver;
fillColor = Color.White;
valveColor = UIColor.Blue;
+ Version = UIGlobal.Version;
}
protected override void OnClick(EventArgs e)
@@ -26,6 +48,14 @@ namespace Sunny.UI
Active = !Active;
}
+ ///
+ /// 版本
+ ///
+ public string Version
+ {
+ get;
+ }
+
private bool active;
[DefaultValue(false), Description("是否滚动"), Category("SunnyUI")]
@@ -66,6 +96,7 @@ namespace Sunny.UI
}
private UIValveDirection direction = UIValveDirection.Left;
+ [DefaultValue(UIValveDirection.Left), Description("阀门方向"), Category("SunnyUI")]
public UIValveDirection Direction
{
get => direction;
@@ -136,10 +167,7 @@ namespace Sunny.UI
case UIValveDirection.Left:
using (Bitmap bmp = new Bitmap(Width, Height))
using (Graphics g1 = bmp.Graphics())
- using (LinearGradientBrush lgb = new LinearGradientBrush(new Point(0, 0),
- new Point(w, 0),
- rectColor,
- fillColor))
+ using (LinearGradientBrush lgb = new LinearGradientBrush(new Point(0, 0), new Point(w, 0), rectColor, fillColor))
{
g1.SetHighQuality();
g1.FillRectangle(lgb, new Rectangle(0, 0, w, Height * 2));
@@ -149,15 +177,11 @@ namespace Sunny.UI
using (Bitmap bmp = new Bitmap(Width, Height))
using (Graphics g1 = bmp.Graphics())
- using (LinearGradientBrush lgb = new LinearGradientBrush(new Point(0, 0),
- new Point(w, 0),
- fillColor,
- rectColor))
+ using (LinearGradientBrush lgb = new LinearGradientBrush(new Point(0, 0), new Point(w, 0), fillColor, rectColor))
{
g1.SetHighQuality();
g1.FillRectangle(lgb, new Rectangle(0, 0, w, Height * 2));
g1.SetDefaultQuality();
-
e.Graphics.DrawImage(bmp, new Rectangle(Width - w - 8, -5, w, Height + 50), new Rectangle(0, 5, w, Height + 20), GraphicsUnit.Pixel);
}
@@ -193,15 +217,62 @@ namespace Sunny.UI
e.Graphics.FillPolygon(rectColor, new PointF[] { pt1, pt2, pt3, pt4, pt1 });
break;
- case UIValveDirection.Top:
+ case UIValveDirection.Bottom:
+ using (Bitmap bmp = new Bitmap(Width, Height))
+ using (Graphics g1 = bmp.Graphics())
+ using (LinearGradientBrush lgb = new LinearGradientBrush(new Point(0, 0), new Point(0, w), rectColor, fillColor))
+ {
+ g1.SetHighQuality();
+ g1.FillRectangle(lgb, new Rectangle(0, 0, Width * 2, w));
+ g1.SetDefaultQuality();
+ e.Graphics.DrawImage(bmp, new Rectangle(-5, 8, Width + 50, w), new Rectangle(5, 0, Width + 20, w), GraphicsUnit.Pixel);
+ }
+
+ using (Bitmap bmp = new Bitmap(Width, Height))
+ using (Graphics g1 = bmp.Graphics())
+ using (LinearGradientBrush lgb = new LinearGradientBrush(new Point(0, 0), new Point(0, w), fillColor, rectColor))
+ {
+ g1.SetHighQuality();
+ g1.FillRectangle(lgb, new Rectangle(0, 0, Width * 2, w));
+ g1.SetDefaultQuality();
+ e.Graphics.DrawImage(bmp, new Rectangle(-5, w + 8, Width + 50, w), new Rectangle(5, 0, Width + 20, w), GraphicsUnit.Pixel);
+ }
+
+ e.Graphics.DrawRectangle(RectColor, new Rectangle(0, 8, Width - 1, pipeSize - 1));
+
+ rect = new Rectangle(4, 8 - 2, 6, pipeSize + 4);
+ e.Graphics.FillRectangle(rectColor, rect);
+
+ rect = new Rectangle(Width - 4 - 6, 8 - 2, 6, pipeSize + 4);
+ e.Graphics.FillRectangle(rectColor, rect);
+
+ rect = new Rectangle(Width / 2 - 2, pipeSize + 8, 4, 14);
+ e.Graphics.FillRectangle(rectColor, rect);
+
+ rect = new Rectangle(Width / 2 - 14, pipeSize + 8 + 10 + 4, 27, 10);
+ e.Graphics.FillRectangle(valveColor, rect);
+
+ colors = GDIEx.GradientColors(Color.White, valveColor, 14);
+ rect = new Rectangle(Width / 2 - 14 + 4, pipeSize + 8 + 10 + 4, 4, 10);
+ e.Graphics.FillRectangle(colors[4], rect);
+ rect = new Rectangle(Width / 2 - 14 + 12, pipeSize + 8 + 10 + 4, 4, 10);
+ e.Graphics.FillRectangle(colors[4], rect);
+ rect = new Rectangle(Width / 2 - 14 + 20, pipeSize + 8 + 10 + 4, 4, 10);
+ e.Graphics.FillRectangle(colors[4], rect);
+
+ rect = new Rectangle(Width / 2 - 14, pipeSize + 8 + 10 + 4, 27, 10);
+ e.Graphics.DrawRectangle(valveColor, rect);
+
+ pt1 = new Point(Width / 2 - 5, pipeSize + 8 + 7);
+ pt2 = new Point(Width / 2 - 5 - 5, pipeSize + 8 - 2);
+ pt3 = new Point(Width / 2 + 4 + 5, pipeSize + 8 - 2);
+ pt4 = new Point(Width / 2 + 4, pipeSize + 8 + 7);
+ e.Graphics.FillPolygon(rectColor, new PointF[] { pt1, pt2, pt3, pt4, pt1 });
break;
case UIValveDirection.Right:
using (Bitmap bmp = new Bitmap(Width, Height))
using (Graphics g1 = bmp.Graphics())
- using (LinearGradientBrush lgb = new LinearGradientBrush(new Point(0, 0),
- new Point(w, 0),
- rectColor,
- fillColor))
+ using (LinearGradientBrush lgb = new LinearGradientBrush(new Point(0, 0), new Point(w, 0), rectColor, fillColor))
{
g1.SetHighQuality();
g1.FillRectangle(lgb, new Rectangle(0, 0, w, Height * 2));
@@ -211,15 +282,11 @@ namespace Sunny.UI
using (Bitmap bmp = new Bitmap(Width, Height))
using (Graphics g1 = bmp.Graphics())
- using (LinearGradientBrush lgb = new LinearGradientBrush(new Point(0, 0),
- new Point(w, 0),
- fillColor,
- rectColor))
+ using (LinearGradientBrush lgb = new LinearGradientBrush(new Point(0, 0), new Point(w, 0), fillColor, rectColor))
{
g1.SetHighQuality();
g1.FillRectangle(lgb, new Rectangle(0, 0, w, Height * 2));
g1.SetDefaultQuality();
-
e.Graphics.DrawImage(bmp, new Rectangle(w + 8, -5, w, Height + 50), new Rectangle(0, 5, w, Height + 20), GraphicsUnit.Pixel);
}
@@ -254,7 +321,57 @@ namespace Sunny.UI
pt4 = new Point(pipeSize + 8 + 7, Height / 2 + 4);
e.Graphics.FillPolygon(rectColor, new PointF[] { pt1, pt2, pt3, pt4, pt1 });
break;
- case UIValveDirection.Bottom:
+ case UIValveDirection.Top:
+ using (Bitmap bmp = new Bitmap(Width, Height))
+ using (Graphics g1 = bmp.Graphics())
+ using (LinearGradientBrush lgb = new LinearGradientBrush(new Point(0, 0), new Point(0, w), rectColor, fillColor))
+ {
+ g1.SetHighQuality();
+ g1.FillRectangle(lgb, new Rectangle(0, 0, Width * 2, w));
+ g1.SetDefaultQuality();
+ e.Graphics.DrawImage(bmp, new Rectangle(-5, Height - w * 2 - 8, Width + 50, w), new Rectangle(5, 0, Width + 20, w), GraphicsUnit.Pixel);
+ }
+
+ using (Bitmap bmp = new Bitmap(Width, Height))
+ using (Graphics g1 = bmp.Graphics())
+ using (LinearGradientBrush lgb = new LinearGradientBrush(new Point(0, 0), new Point(0, w), fillColor, rectColor))
+ {
+ g1.SetHighQuality();
+ g1.FillRectangle(lgb, new Rectangle(0, 0, Width * 2, w));
+ g1.SetDefaultQuality();
+ e.Graphics.DrawImage(bmp, new Rectangle(-5, Height - w - 8, Width + 50, w), new Rectangle(5, 0, Width + 20, w), GraphicsUnit.Pixel);
+ }
+
+ e.Graphics.DrawRectangle(RectColor, new Rectangle(0, Height - pipeSize - 8, Width - 1, pipeSize - 1));
+
+ rect = new Rectangle(4, Height - pipeSize - 8 - 2, 6, pipeSize + 4);
+ e.Graphics.FillRectangle(rectColor, rect);
+
+ rect = new Rectangle(Width - 4 - 6, Height - pipeSize - 8 - 2, 6, pipeSize + 4);
+ e.Graphics.FillRectangle(rectColor, rect);
+
+ rect = new Rectangle(Width / 2 - 2, Height - pipeSize - 8 - 14, 4, 14);
+ e.Graphics.FillRectangle(rectColor, rect);
+
+ rect = new Rectangle(Width / 2 - 14, Height - pipeSize - 8 - 14 - 10, 27, 10);
+ e.Graphics.FillRectangle(valveColor, rect);
+
+ colors = GDIEx.GradientColors(Color.White, valveColor, 14);
+ rect = new Rectangle(Width / 2 - 14 + 4, Height - pipeSize - 8 - 14 - 10, 4, 10);
+ e.Graphics.FillRectangle(colors[4], rect);
+ rect = new Rectangle(Width / 2 - 14 + 12, Height - pipeSize - 8 - 14 - 10, 4, 10);
+ e.Graphics.FillRectangle(colors[4], rect);
+ rect = new Rectangle(Width / 2 - 14 + 20, Height - pipeSize - 8 - 14 - 10, 4, 10);
+ e.Graphics.FillRectangle(colors[4], rect);
+
+ rect = new Rectangle(Width / 2 - 14, Height - pipeSize - 8 - 14 - 10, 27, 10);
+ e.Graphics.DrawRectangle(valveColor, rect);
+
+ pt1 = new Point(Width / 2 - 5, Height - pipeSize - 8 - 7);
+ pt2 = new Point(Width / 2 - 5 - 5, Height - pipeSize - 8 + 2);
+ pt3 = new Point(Width / 2 + 4 + 5, Height - pipeSize - 8 + 2);
+ pt4 = new Point(Width / 2 + 4, Height - pipeSize - 8 - 7);
+ e.Graphics.FillPolygon(rectColor, new PointF[] { pt1, pt2, pt3, pt4, pt1 });
break;
default:
break;
diff --git a/SunnyUI/SunnyUI.csproj b/SunnyUI/SunnyUI.csproj
index 16711a2d..b38be4bf 100644
--- a/SunnyUI/SunnyUI.csproj
+++ b/SunnyUI/SunnyUI.csproj
@@ -39,6 +39,7 @@
+