#if FRAMEWORK20 using System; using System.Collections.Generic; using System.Text; using System.Drawing; using DevComponents.DotNetBar; namespace DevComponents.Editors { public class VisualLabel : VisualItem { #region Private Variables #endregion #region Events #endregion #region Constructor #endregion #region Internal Implementation private Padding _TextPadding = new Padding(0); /// /// Gets or sets the amount of padding added to text. /// public Padding TextPadding { get { return _TextPadding; } set { _TextPadding = value; InvalidateArrange(); } } private string _Text = ""; /// /// Gets or sets the text displayed by the label. /// public string Text { get { return _Text; } set { if (value == null) value = ""; if (_Text != value) { _Text = value; InvalidateArrange(); } } } public override void PerformLayout(PaintInfo p) { Size size = Size.Empty; Graphics g = p.Graphics; Font font = p.DefaultFont; eTextFormat textFormat = eTextFormat.Default | eTextFormat.GlyphOverhangPadding | eTextFormat.LeftAndRightPadding; if (_Text.Length > 0) { if (Text.Trim().Length == 0) { size = TextDrawing.MeasureString(g, Text.Replace(' ', '-'), font, 0, textFormat); size.Width = (int)(size.Width); } else size = TextDrawing.MeasureString(g, Text, font, 0, textFormat); } size.Height += _TextPadding.Vertical; size.Width += _TextPadding.Horizontal; this.Size = size; base.PerformLayout(p); } protected override void OnPaint(PaintInfo p) { Graphics g = p.Graphics; Font font = p.DefaultFont; Rectangle r = this.RenderBounds; eTextFormat textFormat = eTextFormat.Default | eTextFormat.NoPadding; Color color = p.ForeColor; r.X += _TextPadding.Left; r.Y += _TextPadding.Top; if (!GetIsEnabled(p)) color = p.DisabledForeColor; if (_Text.Length > 0) TextDrawing.DrawString(g, _Text, font, color, r, textFormat); base.OnPaint(p); } #endregion } } #endif