문제

현재 사용자 정의 디자인 탭 컨트롤을 작성하고 있습니다. 나는 더 빠르고 유연하다고 생각했기 때문에 탭 콘트롤을 소유자를 그리는 대신 내 자신의 컨트롤을 만들었습니다. VS2008 탭 컨트롤 이후 내 탭 제어 스타일 자체; 즉, 탭이 선택되면 해당 탭의 일부가 선택되지 않은 다른 탭 앞에 있습니다.

내 탭 컨트롤은 실제 탭 자체 인 내 모든 탭 버튼 객체를 포함하는 패널로 구성됩니다. TabButton을 그렇게 투명하게 설정했습니다.

public TabButton()
{
     ...
     SetStyle(ControlStyles.SupportsTransparentBackColor | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true);
     UpdateStyles();
     this.BackColor = Color.Transparent;
}

그러나 탭을 선택하고 다른 탭 앞에서 선택한 경우 선택한 탭 부분 뒤에 나타나야하는 선택되지 않은 탭의 일부는 렌더링되지 않습니다. 표준입니다 SystemColors.Control 선택한 버튼의 나머지 클리핑 사각형을 채우는 색상.

사용자 정의 제어에서 적절한 투명성을 어떻게 달성 할 수 있습니까?

또한 : Tabbutton은 제어를 상속 받으므로 사용해야합니다. SetStyle 투명성을 사용하기 위해.

-에릭 스미스

도움이 되었습니까?

해결책

이것을 살펴보십시오 : http://saftsack.fs.uni-bayreuth.de/~dun3/archives/creating-a-transparent-panel-in-net/108.html

마지막으로 .NET Wind 지난 3 년 동안 그들이 그것을 바꾸 었는지 확실하지 않지만, 나는 이와 같은 일을 기억합니다. 나는 먼저 배경을 그리는 것을 명시 적으로 시도 할 것입니다.

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