⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wndlessmixedlabelex.cs

📁 破解的飞信源代码
💻 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 + -