+ UIMarkLabel:增加带颜色标签的Label
This commit is contained in:
parent
7a2f2b498c
commit
71049bfff3
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
75
SunnyUI.Demo/Controls/FLabel.Designer.cs
generated
75
SunnyUI.Demo/Controls/FLabel.Designer.cs
generated
@ -35,11 +35,21 @@
|
|||||||
this.uiLine3 = new Sunny.UI.UILine();
|
this.uiLine3 = new Sunny.UI.UILine();
|
||||||
this.uiSymbolLabel1 = new Sunny.UI.UISymbolLabel();
|
this.uiSymbolLabel1 = new Sunny.UI.UISymbolLabel();
|
||||||
this.uiSymbolLabel2 = new Sunny.UI.UISymbolLabel();
|
this.uiSymbolLabel2 = new Sunny.UI.UISymbolLabel();
|
||||||
|
this.uiMarkLabel1 = new Sunny.UI.UIMarkLabel();
|
||||||
|
this.uiLine4 = new Sunny.UI.UILine();
|
||||||
|
this.uiMarkLabel2 = new Sunny.UI.UIMarkLabel();
|
||||||
|
this.uiMarkLabel3 = new Sunny.UI.UIMarkLabel();
|
||||||
|
this.uiMarkLabel4 = new Sunny.UI.UIMarkLabel();
|
||||||
this.PagePanel.SuspendLayout();
|
this.PagePanel.SuspendLayout();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// PagePanel
|
// PagePanel
|
||||||
//
|
//
|
||||||
|
this.PagePanel.Controls.Add(this.uiMarkLabel4);
|
||||||
|
this.PagePanel.Controls.Add(this.uiMarkLabel3);
|
||||||
|
this.PagePanel.Controls.Add(this.uiMarkLabel2);
|
||||||
|
this.PagePanel.Controls.Add(this.uiLine4);
|
||||||
|
this.PagePanel.Controls.Add(this.uiMarkLabel1);
|
||||||
this.PagePanel.Controls.Add(this.uiSymbolLabel2);
|
this.PagePanel.Controls.Add(this.uiSymbolLabel2);
|
||||||
this.PagePanel.Controls.Add(this.uiSymbolLabel1);
|
this.PagePanel.Controls.Add(this.uiSymbolLabel1);
|
||||||
this.PagePanel.Controls.Add(this.uiLine3);
|
this.PagePanel.Controls.Add(this.uiLine3);
|
||||||
@ -113,6 +123,7 @@
|
|||||||
//
|
//
|
||||||
this.uiSymbolLabel1.Font = new System.Drawing.Font("微软雅黑", 12F);
|
this.uiSymbolLabel1.Font = new System.Drawing.Font("微软雅黑", 12F);
|
||||||
this.uiSymbolLabel1.Location = new System.Drawing.Point(42, 209);
|
this.uiSymbolLabel1.Location = new System.Drawing.Point(42, 209);
|
||||||
|
this.uiSymbolLabel1.MinimumSize = new System.Drawing.Size(1, 1);
|
||||||
this.uiSymbolLabel1.Name = "uiSymbolLabel1";
|
this.uiSymbolLabel1.Name = "uiSymbolLabel1";
|
||||||
this.uiSymbolLabel1.Padding = new System.Windows.Forms.Padding(28, 0, 0, 0);
|
this.uiSymbolLabel1.Padding = new System.Windows.Forms.Padding(28, 0, 0, 0);
|
||||||
this.uiSymbolLabel1.Size = new System.Drawing.Size(91, 24);
|
this.uiSymbolLabel1.Size = new System.Drawing.Size(91, 24);
|
||||||
@ -124,6 +135,7 @@
|
|||||||
//
|
//
|
||||||
this.uiSymbolLabel2.Font = new System.Drawing.Font("微软雅黑", 12F);
|
this.uiSymbolLabel2.Font = new System.Drawing.Font("微软雅黑", 12F);
|
||||||
this.uiSymbolLabel2.Location = new System.Drawing.Point(139, 209);
|
this.uiSymbolLabel2.Location = new System.Drawing.Point(139, 209);
|
||||||
|
this.uiSymbolLabel2.MinimumSize = new System.Drawing.Size(1, 1);
|
||||||
this.uiSymbolLabel2.Name = "uiSymbolLabel2";
|
this.uiSymbolLabel2.Name = "uiSymbolLabel2";
|
||||||
this.uiSymbolLabel2.Padding = new System.Windows.Forms.Padding(28, 0, 0, 0);
|
this.uiSymbolLabel2.Padding = new System.Windows.Forms.Padding(28, 0, 0, 0);
|
||||||
this.uiSymbolLabel2.Size = new System.Drawing.Size(91, 24);
|
this.uiSymbolLabel2.Size = new System.Drawing.Size(91, 24);
|
||||||
@ -132,6 +144,64 @@
|
|||||||
this.uiSymbolLabel2.Text = "Cancel";
|
this.uiSymbolLabel2.Text = "Cancel";
|
||||||
this.uiSymbolLabel2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
this.uiSymbolLabel2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||||
//
|
//
|
||||||
|
// uiMarkLabel1
|
||||||
|
//
|
||||||
|
this.uiMarkLabel1.AutoSize = true;
|
||||||
|
this.uiMarkLabel1.Font = new System.Drawing.Font("微软雅黑", 12F);
|
||||||
|
this.uiMarkLabel1.Location = new System.Drawing.Point(42, 285);
|
||||||
|
this.uiMarkLabel1.Name = "uiMarkLabel1";
|
||||||
|
this.uiMarkLabel1.Padding = new System.Windows.Forms.Padding(5, 0, 0, 0);
|
||||||
|
this.uiMarkLabel1.Size = new System.Drawing.Size(118, 21);
|
||||||
|
this.uiMarkLabel1.TabIndex = 24;
|
||||||
|
this.uiMarkLabel1.Text = "uiMarkLabel1";
|
||||||
|
//
|
||||||
|
// uiLine4
|
||||||
|
//
|
||||||
|
this.uiLine4.Font = new System.Drawing.Font("微软雅黑", 12F);
|
||||||
|
this.uiLine4.Location = new System.Drawing.Point(30, 248);
|
||||||
|
this.uiLine4.MinimumSize = new System.Drawing.Size(16, 16);
|
||||||
|
this.uiLine4.Name = "uiLine4";
|
||||||
|
this.uiLine4.Size = new System.Drawing.Size(670, 20);
|
||||||
|
this.uiLine4.TabIndex = 25;
|
||||||
|
this.uiLine4.Text = "UIMarkLabel";
|
||||||
|
this.uiLine4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||||
|
//
|
||||||
|
// uiMarkLabel2
|
||||||
|
//
|
||||||
|
this.uiMarkLabel2.AutoSize = true;
|
||||||
|
this.uiMarkLabel2.Font = new System.Drawing.Font("微软雅黑", 12F);
|
||||||
|
this.uiMarkLabel2.Location = new System.Drawing.Point(42, 326);
|
||||||
|
this.uiMarkLabel2.MarkPos = Sunny.UI.UIMarkLabel.UIMarkPos.Bottom;
|
||||||
|
this.uiMarkLabel2.Name = "uiMarkLabel2";
|
||||||
|
this.uiMarkLabel2.Padding = new System.Windows.Forms.Padding(0, 0, 0, 5);
|
||||||
|
this.uiMarkLabel2.Size = new System.Drawing.Size(113, 26);
|
||||||
|
this.uiMarkLabel2.TabIndex = 26;
|
||||||
|
this.uiMarkLabel2.Text = "uiMarkLabel2";
|
||||||
|
//
|
||||||
|
// uiMarkLabel3
|
||||||
|
//
|
||||||
|
this.uiMarkLabel3.AutoSize = true;
|
||||||
|
this.uiMarkLabel3.Font = new System.Drawing.Font("微软雅黑", 12F);
|
||||||
|
this.uiMarkLabel3.Location = new System.Drawing.Point(185, 285);
|
||||||
|
this.uiMarkLabel3.MarkPos = Sunny.UI.UIMarkLabel.UIMarkPos.Right;
|
||||||
|
this.uiMarkLabel3.Name = "uiMarkLabel3";
|
||||||
|
this.uiMarkLabel3.Padding = new System.Windows.Forms.Padding(0, 0, 5, 0);
|
||||||
|
this.uiMarkLabel3.Size = new System.Drawing.Size(118, 21);
|
||||||
|
this.uiMarkLabel3.TabIndex = 27;
|
||||||
|
this.uiMarkLabel3.Text = "uiMarkLabel3";
|
||||||
|
//
|
||||||
|
// uiMarkLabel4
|
||||||
|
//
|
||||||
|
this.uiMarkLabel4.AutoSize = true;
|
||||||
|
this.uiMarkLabel4.Font = new System.Drawing.Font("微软雅黑", 12F);
|
||||||
|
this.uiMarkLabel4.Location = new System.Drawing.Point(190, 326);
|
||||||
|
this.uiMarkLabel4.MarkPos = Sunny.UI.UIMarkLabel.UIMarkPos.Top;
|
||||||
|
this.uiMarkLabel4.Name = "uiMarkLabel4";
|
||||||
|
this.uiMarkLabel4.Padding = new System.Windows.Forms.Padding(0, 5, 0, 0);
|
||||||
|
this.uiMarkLabel4.Size = new System.Drawing.Size(113, 26);
|
||||||
|
this.uiMarkLabel4.TabIndex = 28;
|
||||||
|
this.uiMarkLabel4.Text = "uiMarkLabel4";
|
||||||
|
//
|
||||||
// FLabel
|
// FLabel
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 21F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 21F);
|
||||||
@ -156,5 +226,10 @@
|
|||||||
private UILine uiLine1;
|
private UILine uiLine1;
|
||||||
private UISymbolLabel uiSymbolLabel1;
|
private UISymbolLabel uiSymbolLabel1;
|
||||||
private UISymbolLabel uiSymbolLabel2;
|
private UISymbolLabel uiSymbolLabel2;
|
||||||
|
private UIMarkLabel uiMarkLabel1;
|
||||||
|
private UILine uiLine4;
|
||||||
|
private UIMarkLabel uiMarkLabel4;
|
||||||
|
private UIMarkLabel uiMarkLabel3;
|
||||||
|
private UIMarkLabel uiMarkLabel2;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -25,6 +25,7 @@ using System.Drawing.Design;
|
|||||||
using System.Security.Permissions;
|
using System.Security.Permissions;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using System.Windows.Forms.Design;
|
using System.Windows.Forms.Design;
|
||||||
|
#pragma warning disable SYSLIB0003 // 类型或成员已过时
|
||||||
|
|
||||||
namespace Sunny.UI
|
namespace Sunny.UI
|
||||||
{
|
{
|
||||||
|
@ -26,6 +26,7 @@ using System.Runtime.InteropServices;
|
|||||||
using System.Security.Permissions;
|
using System.Security.Permissions;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using System.Windows.Forms.Design;
|
using System.Windows.Forms.Design;
|
||||||
|
#pragma warning disable SYSLIB0003 // 类型或成员已过时
|
||||||
|
|
||||||
namespace Sunny.UI
|
namespace Sunny.UI
|
||||||
{
|
{
|
||||||
|
@ -87,10 +87,9 @@ namespace Sunny.UI
|
|||||||
[Description("获取或设置可以自定义主题风格"), Category("SunnyUI")]
|
[Description("获取或设置可以自定义主题风格"), Category("SunnyUI")]
|
||||||
public bool StyleCustomMode { get; set; }
|
public bool StyleCustomMode { get; set; }
|
||||||
|
|
||||||
public void SetStyleColor(UIBaseStyle uiColor)
|
public virtual void SetStyleColor(UIBaseStyle uiColor)
|
||||||
{
|
{
|
||||||
if (uiColor.IsCustom()) return;
|
if (uiColor.IsCustom()) return;
|
||||||
|
|
||||||
ForeColor = uiColor.LabelForeColor;
|
ForeColor = uiColor.LabelForeColor;
|
||||||
Invalidate();
|
Invalidate();
|
||||||
}
|
}
|
||||||
|
140
SunnyUI/Controls/UIMarkLabel.cs
Normal file
140
SunnyUI/Controls/UIMarkLabel.cs
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
/******************************************************************************
|
||||||
|
* 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.
|
||||||
|
* 如果您使用此代码,请保留此说明。
|
||||||
|
******************************************************************************
|
||||||
|
* 文件名称: UIMarkLabel.cs
|
||||||
|
* 文件说明: 带颜色标签
|
||||||
|
* 当前版本: V3.0
|
||||||
|
* 创建日期: 2021-03-07
|
||||||
|
*
|
||||||
|
* 2021-03-07: V3.0.2 增加文件说明
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace Sunny.UI
|
||||||
|
{
|
||||||
|
public class UIMarkLabel : UILabel
|
||||||
|
{
|
||||||
|
public UIMarkLabel()
|
||||||
|
{
|
||||||
|
Padding = new Padding(MarkSize + 2, 0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool autoSize;
|
||||||
|
|
||||||
|
[Browsable(true)]
|
||||||
|
[Description("自动大小"), Category("SunnyUI")]
|
||||||
|
public override bool AutoSize
|
||||||
|
{
|
||||||
|
get => autoSize;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
autoSize = value;
|
||||||
|
Invalidate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private int markSize = 3;
|
||||||
|
|
||||||
|
[Description("标签大小"), Category("SunnyUI"), DefaultValue(3)]
|
||||||
|
public int MarkSize
|
||||||
|
{
|
||||||
|
get => markSize;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
markSize = value;
|
||||||
|
Invalidate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private UIMarkPos markPos = UIMarkPos.Left;
|
||||||
|
|
||||||
|
[Description("标签位置"), Category("SunnyUI"), DefaultValue(UIMarkPos.Left)]
|
||||||
|
public UIMarkPos MarkPos
|
||||||
|
{
|
||||||
|
get => markPos;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
markPos = value;
|
||||||
|
|
||||||
|
switch (markPos)
|
||||||
|
{
|
||||||
|
case UIMarkPos.Left: Padding = new Padding(MarkSize + 2, 0, 0, 0); break;
|
||||||
|
case UIMarkPos.Right: Padding = new Padding(0, 0, MarkSize + 2, 0); break;
|
||||||
|
case UIMarkPos.Top: Padding = new Padding(0, MarkSize + 2, 0, 0); break;
|
||||||
|
case UIMarkPos.Bottom: Padding = new Padding(0, 0, 0, MarkSize + 2); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
Invalidate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum UIMarkPos
|
||||||
|
{
|
||||||
|
Left,
|
||||||
|
Top,
|
||||||
|
Right,
|
||||||
|
Bottom
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private Color markColor = UIColor.Blue;
|
||||||
|
|
||||||
|
[Description("标签颜色"), Category("SunnyUI")]
|
||||||
|
[DefaultValue(typeof(Color), "80, 160, 255")]
|
||||||
|
public Color MarkColor
|
||||||
|
{
|
||||||
|
get => markColor;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
markColor = value;
|
||||||
|
Invalidate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void SetStyleColor(UIBaseStyle uiColor)
|
||||||
|
{
|
||||||
|
base.SetStyleColor(uiColor);
|
||||||
|
if (uiColor.IsCustom()) return;
|
||||||
|
markColor = uiColor.PrimaryColor;
|
||||||
|
Invalidate();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnPaint(PaintEventArgs e)
|
||||||
|
{
|
||||||
|
base.OnPaint(e);
|
||||||
|
|
||||||
|
SizeF TextSize = e.Graphics.MeasureString(Text, Font);
|
||||||
|
if (autoSize)
|
||||||
|
{
|
||||||
|
float width = (MarkPos == UIMarkPos.Left || MarkPos == UIMarkPos.Right) ?
|
||||||
|
TextSize.Width + MarkSize + 2 : TextSize.Width;
|
||||||
|
float height = (MarkPos == UIMarkPos.Top || MarkPos == UIMarkPos.Bottom) ?
|
||||||
|
TextSize.Height + MarkSize + 2 : TextSize.Height;
|
||||||
|
|
||||||
|
if (Width != (int)width) Width = (int)width;
|
||||||
|
if (Height != (int)height) Height = (int)height;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (markPos)
|
||||||
|
{
|
||||||
|
case UIMarkPos.Left: e.Graphics.FillRectangle(MarkColor, 0, 0, MarkSize, Height); break;
|
||||||
|
case UIMarkPos.Right: e.Graphics.FillRectangle(MarkColor, Width - MarkSize, 0, MarkSize, Height); break;
|
||||||
|
case UIMarkPos.Top: e.Graphics.FillRectangle(MarkColor, 0, 0, Width, MarkSize); break;
|
||||||
|
case UIMarkPos.Bottom: e.Graphics.FillRectangle(MarkColor, 0, Height - MarkSize, Width, MarkSize); break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -24,6 +24,7 @@ using System.ComponentModel;
|
|||||||
using System.Media;
|
using System.Media;
|
||||||
using System.Security;
|
using System.Security;
|
||||||
using System.Security.Permissions;
|
using System.Security.Permissions;
|
||||||
|
#pragma warning disable SYSLIB0003 // 类型或成员已过时
|
||||||
|
|
||||||
namespace Sunny.UI
|
namespace Sunny.UI
|
||||||
{
|
{
|
||||||
|
@ -4,6 +4,7 @@ using System.Text;
|
|||||||
using HANDLE = System.IntPtr;
|
using HANDLE = System.IntPtr;
|
||||||
using HDC = System.IntPtr;
|
using HDC = System.IntPtr;
|
||||||
using HWND = System.IntPtr;
|
using HWND = System.IntPtr;
|
||||||
|
#pragma warning disable CS0618 // 类型或成员已过时
|
||||||
|
|
||||||
namespace Sunny.UI.Win32
|
namespace Sunny.UI.Win32
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user