From f7c8020e5e7a99c417ebf7f589cc7489493bad6c Mon Sep 17 00:00:00 2001 From: Sunny Date: Tue, 2 May 2023 11:45:51 +0800 Subject: [PATCH] =?UTF-8?q?*=20UITitlePanel:=20=E5=A2=9E=E5=8A=A0=E4=BA=86?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E5=85=B3=E9=97=AD=E6=8C=89=E9=92=AE=E7=9A=84?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=EF=BC=8C=E7=82=B9=E5=87=BB=E5=90=8E=E9=9A=90?= =?UTF-8?q?=E8=97=8F=E6=8E=A7=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SunnyUI/Controls/UITitlePanel.cs | 37 +++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/SunnyUI/Controls/UITitlePanel.cs b/SunnyUI/Controls/UITitlePanel.cs index d514ead5..8b86acbb 100644 --- a/SunnyUI/Controls/UITitlePanel.cs +++ b/SunnyUI/Controls/UITitlePanel.cs @@ -22,6 +22,7 @@ * 2020-09-03: V3.0.6 增加标题文字颜色 * 2022-05-30: V3.1.9 修复Padding设置 * 2022-10-28: V3.2.6 箭头图标可设置颜色 + * 2023-05-02: V3.3.6 增加了一个关闭按钮的属性,点击后隐藏控件 ******************************************************************************/ using System; @@ -192,6 +193,20 @@ namespace Sunny.UI g.DrawFontImage(Collapsed ? 61703 : 61702, 24, SymbolColor, new Rectangle(ControlBoxRect.Left + 2, ControlBoxRect.Top, ControlBoxRect.Width, ControlBoxRect.Height)); } + + if (ShowClose) + { + if (InControlBox) + { + if (ShowRadius) + g.FillRoundRectangle(UIStyles.ActiveStyleColor.ButtonFillHoverColor, ControlBoxRect, 5); + else + g.FillRectangle(UIStyles.ActiveStyleColor.ButtonFillHoverColor, ControlBoxRect); + } + + g.DrawFontImage(361453, 24, SymbolColor, + new Rectangle(ControlBoxRect.Left + 2, ControlBoxRect.Top, ControlBoxRect.Width, ControlBoxRect.Height), 0, 2); + } } private Color symbolColor = Color.White; @@ -226,7 +241,7 @@ namespace Sunny.UI if (inControlBox != InControlBox) { InControlBox = inControlBox; - if (ShowCollapse) Invalidate(); + if (ShowCollapse || ShowClose) Invalidate(); } base.OnMouseMove(e); @@ -303,6 +318,21 @@ namespace Sunny.UI set { showCollapse = value; + showClose = false; + Invalidate(); + } + } + + private bool showClose; + + [Description("是否打开关闭按钮"), Category("SunnyUI"), DefaultValue(false)] + public bool ShowClose + { + get => showClose; + set + { + showClose = value; + showCollapse = false; Invalidate(); } } @@ -336,6 +366,11 @@ namespace Sunny.UI protected override void OnMouseClick(MouseEventArgs e) { + if (ShowClose && e.Location.InRect(ControlBoxRect)) + { + this.Hide(); + } + if (ShowCollapse && e.Location.InRect(ControlBoxRect)) { Collapsed = !Collapsed;