首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

winform满载OnPaint用GDI画了一些图型,控件背景不透明了

2013-07-20 
winform重载OnPaint用GDI画了一些图型,控件背景不透明了winform上有一些PictureBox,原本是背景透明的。winf

winform重载OnPaint用GDI画了一些图型,控件背景不透明了
winform上有一些PictureBox,原本是背景透明的。winform重载了OnPaint,在OnPaint中画了背景图,且用GDI画了一些图型后PictureBox就变不透明了。
分析了下原因,PictureBox背景透明时要获取父窗体的背景图片(BackGroundImage),这个背景图是父窗体OnPaint之前的背景。
目前还不知如何处理
[解决办法]
变通一下:可以给图片填充PictureBox容器的背景色。
[解决办法]
直接把pictureBox的图片画到窗体上面去!
[解决办法]
你自定义的时候不要忘记调用基类的OnPaint方法了
[解决办法]
透明控件:

class MyPictureBox:Control
{
   
         protected override CreateParams CreateParams
         {
             get
             {
                 CreateParams para = base.CreateParams;
                 para.ExStyle 
[解决办法]
= 0x00000020; //WS_EX_TRANSPARENT 透明支持
                 return para;
             }
         }
         protected override void OnPaintBackground(PaintEventArgs e) //不画背景
         {
             //base.OnPaintBackground(e);
         }
         protected override void OnPaint(PaintEventArgs e)
         {
             e.Graphics.DrawEllipse(System.Drawing.Pens.Aqua, new System.Drawing.Rectangle(100, 100, 100, 100));


             base.OnPaint(e);
         }
}
winform满载OnPaint用GDI画了一些图型,控件背景不透明了

热点排行