我正在玩C#并尝试执行一个简单的动画 - 一个不停旋转的方块。使用以下代码:
private void logoContainer_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
int rectangleW = 80;
int rectangleH = 80;
int offset = 15;
var m = g.Transform;
g.TranslateTransform(offset + rectangleW / 2, offset + rectangleH / 2);
g.RotateTransform(angle);
g.FillRectangle(Brushes.Black, -(rectangleW / 2), -(rectangleH / 2), rectangleW, rectangleH);
Font font = new Font("Arial", 30);
g.Transform = m;
}
.....
private void timer1_Tick(object sender, EventArgs e)
{
angle += 1;
if(angle > 360)
{
angle = 1;
}
Refresh();
}
动画有效,但一直闪烁。我如何摆脱这种行为?