Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 移动PictureBox透明背景问题_C#_Image_Winforms - Fatal编程技术网

C# 移动PictureBox透明背景问题

C# 移动PictureBox透明背景问题,c#,image,winforms,C#,Image,Winforms,问题: 移动对象: type: pictureBox name : RobotAnimation.PicFM; backcolor: Transparent; 背景图像-> type: picturebox name : pictureBox1 等-> RobotAnimation.PicATM.Parent = pictureBox1; 步骤: 问题: moving object -> around moving object -> is flicker

问题:

移动对象:

type: pictureBox 
name : RobotAnimation.PicFM;
backcolor: Transparent;     
背景图像->

type: picturebox   
name : pictureBox1
等->

RobotAnimation.PicATM.Parent = pictureBox1;
步骤:

问题:

moving object -> around moving object -> is flicker
我如何解决这个问题?

什么是“混乱”?

但是,是否已设置窗体的.DoubleBuffered属性?(这是一种形式吗?
如果没有,请尝试。

编辑:
@LarsTech提供的信息已经为您指明了(不可避免的)道路。
在此之前,请尝试激活对象(窗体、图片框、面板)的
.OptimizedDoubleBuffer

对于表单,可以直接调用其
.SetStyle
方法激活它:

this.SetStyle(ControlStyles.OptimizedDoubleBuffer | 
              ControlStyles.UserPaint | 
              ControlStyles.AllPaintingInWmPaint,
              true);
this.UpdateStyles();
在PictureBoxes和Panel中,该方法受保护,您必须在派生类中设置它:

ControlStyles.UserPaint
的使用取决于您正在做什么。
查看(并关注)Microsoft文档

此外,我可能错了,从我在你的动画GIF中看到的,这看起来比撕裂更重要。您的渲染似乎只差一个像素。

什么是“凌乱”?

但是,是否已设置窗体的.DoubleBuffered属性?(这是一种形式吗?
如果没有,请尝试。

编辑:
@LarsTech提供的信息已经为您指明了(不可避免的)道路。
在此之前,请尝试激活对象(窗体、图片框、面板)的
.OptimizedDoubleBuffer

对于表单,可以直接调用其
.SetStyle
方法激活它:

this.SetStyle(ControlStyles.OptimizedDoubleBuffer | 
              ControlStyles.UserPaint | 
              ControlStyles.AllPaintingInWmPaint,
              true);
this.UpdateStyles();
在PictureBoxes和Panel中,该方法受保护,您必须在派生类中设置它:

ControlStyles.UserPaint
的使用取决于您正在做什么。
查看(并关注)Microsoft文档


此外,我可能错了,从我在你的动画GIF中看到的,这看起来比撕裂更重要。看起来您的渲染效果差了一个像素。

您要查找的单词是闪烁或撕裂。看见复制问题的Post代码。您要查找的单词是闪烁或撕裂。看见发布重复问题的代码。DoubleBuffered=true->相同问题查看编辑并遵循@LarsTech!DoubleBuffered=true->相同问题查看编辑并遵循@LarsTech!
public class BufferedPicture : PictureBox
{
   public BufferedPicture()
   {
      this.SetStyle(ControlStyles.OptimizedDoubleBuffer | 
                    ControlStyles.UserPaint | 
                    ControlStyles.AllPaintingInWmPaint, true);
      this.UpdateStyles();
   }
}