自定义label,实现了透明,文字靠左,中,右对齐,自动换行(仅针对汉字,有根据使用文字的方法,不过我比较懒就没写了),字体颜色,背景颜色,背景图,平铺背景图等。透明方法通过在 OnPaintBackground调用Parent重绘接口重绘背景并且本身不绘制背景来实现。
此DLL可在控件工具箱中使用,大部分修改即时显示。先贴一部分代码,留到有空再编辑咯。
using System.ComponentModel;
using System.Windows.Forms;
using System.Drawing;
namespace labelDll
{
public enum Alignment
{
left, mid, right
};
/// <summary>
/// 可以定义背景图片的Label
/// </summary>
public partial class MyLabel : UserControl
{
#region 构造方法
public MyLabel()
{
backBuffer = new Bitmap(Width, Height);
}
protected override void OnPaint(PaintEventArgs e)
{
OnPaintBackground(e);
OnDrawText(e);
base.OnPaint(e);
}
#endregion
#region 私有字段
//背景图片
private Image image;
private string textString;
private Color textColor;
private Image fillImage;
private Image backBuffer;
private bool multiLine;
private Alignment textAlignment;
#endregion
#region 共有属性
/// <summary>
/// 背景图片
/// </summary>
[DefaultValue(1)]
public Alignment TextAlignment
{
get { return textAlignment; }
set { textAlignment = value; }
}
[Defa