94 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
#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);
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the amount of padding added to text.
 | 
						|
        /// </summary>
 | 
						|
        public Padding TextPadding
 | 
						|
        {
 | 
						|
            get { return _TextPadding; }
 | 
						|
            set { _TextPadding = value; InvalidateArrange(); }
 | 
						|
        }
 | 
						|
 | 
						|
        private string _Text = "";
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the text displayed by the label.
 | 
						|
        /// </summary>
 | 
						|
        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
 | 
						|
 |