底层是一个picturebox控件,在图片上要盖个印章,然后打印出来。印章该如何来实现?我拉了一个label过来,都设置不了透明的,要怎么才能实现我要的那效果?我的文字是listbox中的,是动态显示的,唯一不变的是日期的年月日。

解决方案 »

  1.   

    只要设置Lable.BackColor=Color.TransParent;//OK!
      

  2.   

    直接在picturebox上画Image,设置image的透明度
      

  3.   

    1  普通透明的话就设置背景色transparent属性,就会和窗体颜色一个样2 给你一个我的圆形BUtton,希望能给你抛砖引玉的效果,Label也一样可以这样public partial class EllipseButton : System.Windows.Forms.Button
        {
            private Color startColor = Color.Blue;        private Color endColor = Color.GreenYellow;        [Description("设定渐变的起始色"), Category("Appearance")]//注视         public Color StartColor
            {
                get
                {
                    return startColor;
                }
                set
                {
                    startColor = value;                RePaint();
                }
            }
            [Description("设定渐变的终止色"), Category("Appearance")]
            public Color EndColor
            {
                get
                {
                    return endColor;
                }
                set
                {
                    endColor = value;
                    RePaint();
                }        }
            public EllipseButton()
            {
                InitializeComponent();            this.Width = 25;            this.Height = 25;
            }
            //绘制圆形区域
            protected override void OnPaint(PaintEventArgs pe)
            {
                base.OnPaint(pe);            Graphics g = pe.Graphics;            g.SmoothingMode = SmoothingMode.AntiAlias;            g.Clear(this.BackColor);            Rectangle rect = new Rectangle(0, 0, this.Width, this.Height);            LinearGradientBrush myBrush = new LinearGradientBrush(rect, startColor, endColor, LinearGradientMode.ForwardDiagonal);            g.FillEllipse(myBrush, rect);            myBrush.Dispose();            StringFormat format = new StringFormat();            format.LineAlignment = StringAlignment.Center;            format.Alignment = StringAlignment.Center;            g.DrawString(this.Text, Font, new SolidBrush(this.ForeColor), rect, format);
            }
            //重新绘制圆形区域
            private void RePaint()
            {
                Rectangle rect = new Rectangle(0, 0, this.Width, this.Height);            OnPaint(new PaintEventArgs(this.CreateGraphics(), rect));
            }
            private void EllipseButton_Resize(object sender, System.EventArgs e)
            {
                RePaint();
            }
            private void EllipseButton_TextChanged(object sender, System.EventArgs e)
            {
                RePaint();
            }    }
      

  4.   

    问题解决了,我是用Graphics.DrawImage和DrawLine画出来的。。不用什么标签。