* UITitlePanel: 增加了一个关闭按钮的属性,点击后隐藏控件

This commit is contained in:
Sunny 2023-05-02 11:45:51 +08:00
parent 4f6ad5231f
commit f7c8020e5e

View File

@ -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;