2017-11-21 2 views
1

probem :이동 PictureBox를 투명 배경 문제

GIF

움직이는 물체 :

type: pictureBox 
name : RobotAnimation.PicFM; 
backcolor: Transparent;  

배경 이미지 ->

type: picturebox 
name : pictureBox1 

등 ->

,947,

단계 :

timerTick += RobotAnimation.PicATM.Location.X +1; 

이 문제 :

moving object -> around moving object -> is flicker 

가 어떻게이 문제를 해결할 수 있습니까?

+0

찾고있는 단어가 깜박이거나 끊어지는 것입니다. [애니메이션에서 찢어짐을 제거하는 방법] (https://stackoverflow.com/q/2448831/719186)을 참조하십시오. 문제를 복제하는 코드를 게시하십시오. – LarsTech

답변

0

"지저분한"이란 무엇입니까?

그러나 양식의 .DoubleBuffered 속성을 설정 했습니까? (양식입니까?)
그렇지 않은 경우 시도하십시오.

편집 : @LarsTech에서 제공 Link 이미 (피할 수) 경로 방향을 가리키는
.
그 전에 개체 (양식, PictureBoxes, 패널) .OptimizedDoubleBuffer 활성화하려고합니다. 양식으로
, 그것은 그 .SetStyle 방법 호출을 직접 활성화 할 수 있습니다 :

public class BufferedPicture : PictureBox 
{ 
    public BufferedPicture() 
    { 
     this.SetStyle(ControlStyles.OptimizedDoubleBuffer | 
        ControlStyles.UserPaint | 
        ControlStyles.AllPaintingInWmPaint, true); 
     this.UpdateStyles(); 
    } 
} 
:

this.SetStyle(ControlStyles.OptimizedDoubleBuffer | 
       ControlStyles.UserPaint | 
       ControlStyles.AllPaintingInWmPaint, 
       true); 
this.UpdateStyles(); 

PictureBoxes 및 패널에서, 그 방법은 보호됩니다, 당신은 파생 클래스에서 설정해야

ControlStyles.UserPaint의 사용은 현재 수행중인 작업에 따라 다릅니다.
Microsoft 문서에서 Control.SetStyle을 살펴보십시오.

또한 내가 여기에 잘못있을 수 있습니다. 움직이는 GIF에서 볼 수있는 것보다 이 더 이상 보이지 않습니다.이 나옵니다. 렌더링이 한 픽셀 씩 떨어져있는 것 같습니다.

+0

DoubleBuffered = true -> 같은 문제 – JPH

+0

덧글이 있지만 – JPH

+0

편집을보고 @LarsTech [Link] (https://stackoverflow.com/q/2448831/719186)를 따르십시오! – Jimi