📄 wndlessmixedlabelex.cs
字号:
namespace Imps.Client.Pc.WndlessControls
{
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
public class WndlessMixedLabelEx : WndlessMixedLabel
{
private LabelExItemCollection _items;
protected override void OnPaint(PaintEventArgs e)
{
if (this._items != null)
{
Rectangle clientRectangle = this.ClientRectangle;
float x = clientRectangle.Left;
StringFormat format = (StringFormat) StringFormat.GenericDefault.Clone();
if (base.AutoEllipsis)
{
format.Trimming = StringTrimming.EllipsisCharacter;
}
using (IEnumerator<LabelExItem> enumerator = this._items.GetEnumerator())
{
while (enumerator.MoveNext())
{
LabelExItem item = enumerator.get_Current();
Font font = item.Font ?? base.Font;
Color color = (item.ForeColor == Color.Transparent) ? base.ForeColor : item.ForeColor;
SizeF ef = e.Graphics.MeasureString(item.Text, font);
float y = clientRectangle.Top + (clientRectangle.Height - ef.Height);
RectangleF layoutRectangle = new RectangleF(x, y, clientRectangle.Right - x, clientRectangle.Bottom - y);
if (base.Enabled)
{
e.Graphics.DrawString(item.Text, font, new SolidBrush(color), layoutRectangle, format);
}
else
{
ControlPaint.DrawStringDisabled(e.Graphics, item.Text, font, base.BackColor, layoutRectangle, format);
}
x += ef.Width;
if (x > clientRectangle.Right)
{
return;
}
}
}
}
}
public LabelExItemCollection Items
{
get
{
if (this._items == null)
{
this._items = new LabelExItemCollection(this);
}
return this._items;
}
}
public override Size PreferredClientSize
{
get
{
if (((base.OwnerControl == null) || (this._items == null)) || !this._items.HasMultiFont())
{
return base.PreferredClientSize;
}
SizeF empty = SizeF.Empty;
using (Graphics graphics = base.OwnerControl.CreateGraphics())
{
using (IEnumerator<LabelExItem> enumerator = this._items.GetEnumerator())
{
while (enumerator.MoveNext())
{
LabelExItem item = enumerator.get_Current();
Font font = item.Font ?? base.Font;
SizeF ef2 = graphics.MeasureString(item.Text, font);
empty.Width += ef2.Width;
if (ef2.Height > empty.Height)
{
empty.Height = ef2.Height;
}
}
}
}
Size size = Size.Ceiling(empty);
Rectangle buttonRectangle = base.ButtonRectangle;
size.Width += buttonRectangle.Width;
return size;
}
}
public override string Text
{
get
{
StringBuilder builder = new StringBuilder();
for (int i = 0; i < this._items.Count; i++)
{
builder.Append(this._items[i].Text);
}
return builder.ToString();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -