我试图为我的C#程序制作动画。有一个太空火箭,垂直上升8个像素,定时器间隔为25ms。我已设法制作动画,但由于图片框的背景(我用于火箭)被设置为透明,每次移动时它都会闪烁形式的背景图像。我该怎么做才能阻止它?
我用于计时器刻度的代码:
pictureBox1.Top -= 8;
P.S:我试图用面板改变图片框,慢慢击落火箭和计时器,但似乎没有任何改变。
答案 0 :(得分:1)
我现在还没有尝试过。 需要有一个渲染事件,您可以将其挂钩并对UI进行操作,以便顺利渲染。
尝试以下内容:
private void Form1_Load(object sender, System.EventArgs e)
{
pictureBox1.Paint += new System.Windows.Forms.PaintEventHandler(this.pictureBox1_Paint);
}
private void pictureBox1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
pictureBox1.Top -= 8;
}
再次对此进行了测试,并且我还没有在winforms中开发任何东西。 但这是你应该顺利渲染事物的方向。
在某些情况下,上面提到的双缓冲事物也是一个因素。 但这主要是做到这一点的方式。