문제

그래서 저는 Windows Forms 개발에 익숙하지 않습니다.

나는 단지 모양을 돌리는 "이봐 바쁘다"구성 요소를 만들려고 노력하고 있습니다. 나는이 컨트롤이 일시적이고 다른 컨트롤 위에 그려지기를 원합니다. 클래스는 제어에서 직접 상속됩니다.

그래서 나는 이것을 생성자에 가지고 있습니다.

SetStyle(ControlStyles.Opaque, true);

이:

protected override CreateParams CreateParams
{
    get
    {
        CreateParams parms = base.CreateParams;
        parms.ExStyle |= 0x20; 
        return parms;
    }
}

다른 컨트롤 위에 올라갈 컨트롤을 얻습니다.

이제 내 문제는 이것입니다. 나는 컨트롤을 몇 번 1 초 동안 다시 표현하여 부드러운 애니메이션을 제공합니다. 그러나 이전 프레임에서 그린 내용을 지우는 방법을 알 수 없습니다. 사용 e.Graphics.Clear(Color.Transparent) 안에 OnPaint 전체 컨트롤을 검은 색으로 바꿉니다.

제어의 그린 내용을 지우는 방법이 있습니까?

컨트롤을 조정하면 배경이 제거 될 것임을 알았습니다.

작동하지 않는 것들

  1. 아무것도하지 않기 위해 onpaintbackground를 우선합니다. 또는 단지 Base.onpaintbackground를 호출합니다. 동일한 결과.
도움이 되었습니까?

해결책

좋아요, 여기에서 해결책을 찾았습니다.http://www.bobpowell.net/transcontrols.htm

부모 컨트롤은 투명한 배경을 유지하려면 실제로 무효화되어야합니다.

다른 팁

이 기사가 제공하는 onpaintbackground를 무시해야 할 수도 있습니다. http://saftsack.fs.uni-bayreuth.de/~dun3/archives/creating-a-transparent-panel-in-net/108.html

또한 onpaintbackground를 강제로 호출하도록 지우려면 컨트롤을 무효화해야 할 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top