【发布时间】:2009-10-22 18:12:22
【问题描述】:
所以,我对 Windows 窗体开发非常陌生。
我正在尝试创建一个“嘿,我正忙着做事”的组件,它只是旋转一个形状。我希望这个控件是瞬态的,并在任何其他控件之上绘制。该类直接继承自 Control。
所以我在构造函数中有这个:
SetStyle(ControlStyles.Opaque, true);
还有这个:
protected override CreateParams CreateParams
{
get
{
CreateParams parms = base.CreateParams;
parms.ExStyle |= 0x20;
return parms;
}
}
这让我得到了一个可以在其他控件之上绘制的控件。
现在我的问题是这个。我每秒重绘几次控件,以呈现平滑动画的外观。但是,我不知道如何清除前一帧中绘制的内容。在OnPaint 中使用e.Graphics.Clear(Color.Transparent) 会使整个控件变黑。
有没有办法只清除控件的绘制内容?
我注意到调整控件大小会清除背景。
行不通的事情
- 重写 OnPaintBackground 以不执行任何操作。或者只是调用 base.OnPaintBackground。结果相同。
【问题讨论】:
标签: c# .net winforms gdi+ transparent