probem:
移动物体:
type: pictureBox
name : RobotAnimation.PicFM;
backcolor: Transparent;
背景图片 - >
type: picturebox
name : pictureBox1
等 - >
RobotAnimation.PicATM.Parent = pictureBox1;
步骤:
timerTick += RobotAnimation.PicATM.Location.X +1;
问题:
moving object -> around moving object -> is flicker
我该如何解决这个问题?
答案 0 :(得分:0)
什么是“凌乱”?
但是,您是否设置了表单的.DoubleBuffered属性? (这是表格吗?)
如果没有,试试。
修改强>
@LarsTech提供的Link已经指向了(不可避免的)路径
在此之前,尝试激活对象的.OptimizedDoubleBuffer
(表单,图片框,面板)
使用Forms,可以直接调用它的.SetStyle
方法:
this.SetStyle(ControlStyles.OptimizedDoubleBuffer |
ControlStyles.UserPaint |
ControlStyles.AllPaintingInWmPaint,
true);
this.UpdateStyles();
在PictureBoxes和Panels中,该方法受到保护,您必须在派生类中设置它:
public class BufferedPicture : PictureBox
{
public BufferedPicture()
{
this.SetStyle(ControlStyles.OptimizedDoubleBuffer |
ControlStyles.UserPaint |
ControlStyles.AllPaintingInWmPaint, true);
this.UpdateStyles();
}
}
使用ControlStyles.UserPaint
取决于您正在做什么。
在Microsoft Docs中查看(并按照)Control.SetStyle。
另外 - 我可能在这里错了 - 从我在动画GIF中看到的,看起来不仅仅是撕裂。您的渲染似乎是一个像素关闭。