A picturebox object that supports a label (transparent).
this allow to create a piture button and add text it.
This control tested and working :)
use it with wisdom... or not:
have fun:
public class PictureText : PictureBox, ISupportInitialize
{
#region #region Private Data-Members
private string _textDisplayed = string.Empty;
private Font _textFont = new System.Drawing.Font("Arial", 10F, System.Drawing.FontStyle.Bold);
private Color _textForeColor = Color.Black;
#endregion
public string TextDisplayed
{
get { return _textDisplayed; }
set
{
_textDisplayed = value;
this.Invalidate();
}
}
public Font TextFont
{
get { return _textFont; }
set
{
_textFont = value;
this.Invalidate();
}
}
public Color TextForeColor
{
get { return _textForeColor; }
set
{
_textForeColor = value;
this.Invalidate();
}
}
//protected override void OnPaintBackground(PaintEventArgs e)
//{
// base.OnPaintBackground(e);
// //HorizontalAlignment.
// if (string.IsNullOrEmpty(TextDisplayed) == false)
// {
// e.Graphics.DrawString(this.TextDisplayed, this.TextFont, new SolidBrush(this.TextForeColor), this.Location.X, this.Location.Y);
// }
//}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
if (string.IsNullOrEmpty(TextDisplayed) == false)
{
using (StringFormat sf = new StringFormat())
{
sf.Alignment = StringAlignment.Center;
sf.LineAlignment = StringAlignment.Center;
e.Graphics.DrawString(this.TextDisplayed, this.TextFont, new SolidBrush(this.TextForeColor), this.Width / 2, this.Height / 2, sf);
}
}
}
#region ISupportInitialize Members
public void BeginInit()
{
}
public void EndInit()
{
}
#endregion
}