sni*_*ker 6 .net c# gdi+ transparent winforms
所以,我对Windows窗体开发很不熟悉.
我正在尝试创建一个"嘿,我正忙着做东西"的组件,只是旋转形状.我希望这个控件是瞬态的,并且可以在任何其他控件之上绘制.该类直接从Control继承.
所以我在构造函数中有这个:
SetStyle(ControlStyles.Opaque, true);
Run Code Online (Sandbox Code Playgroud)
还有这个:
protected override CreateParams CreateParams
{
get
{
CreateParams parms = base.CreateParams;
parms.ExStyle |= 0x20;
return parms;
}
}
Run Code Online (Sandbox Code Playgroud)
这让我获得了一个可以在其他控件之上绘制的控件.
现在我的问题是这个.我每秒重复几次控制,给动画一个平滑的动画.但是,我无法弄清楚如何清除前一帧中绘制的内容.使用e.Graphics.Clear(Color.Transparent)在OnPaint原来整个控制黑色.
有没有办法清除控件的绘制内容?
我注意到调整控件大小会清除背景.
不起作用的事情
好的,我在这里找到了解决方案: https://web.archive.org/web/20141227200000/http ://bobpowell.net/transcontrols.aspx
实际上必须使父控件无效才能保留透明背景。