질문
프로젝트에서 원 컨트롤을 추가하고 중간에 일부 텍스트를 표시해야 합니다.
제 문제는 원이 너무 작아서 크기를 조정하면 다른 컨트롤과 겹치는 것입니다. 원의 너비가 정사각형과 같기를 원합니다.
아니면 컨트롤의 배경을 투명하게 만드는 방법은 무엇인가요?
솔루션
반투명하게 만들 수 있는 Control에서 파생된 사용자 정의 컨트롤입니다.
인터페이스는 여러 숫자를 포함할 수 있는 색상이 지정된 원입니다.
이 컨트롤은 다음 사용자 정의 속성을 노출합니다.
불투명도 : 컨트롤 배경의 불투명도 수준 [0, 255]
InnerPadding(내부 패딩) : 원 경계를 정의하는 내부 직사각형과 제어 경계 사이의 거리입니다.
FontPadding(글꼴 패딩) : 텍스트와 내부 직사각형 사이의 거리입니다.
CreateParams를 재정의한 다음 ExStyle |= WS_EX_TRANSPARENT;를 설정하여 투명성을 달성합니다.
Control.SetStyle() 메서드는 컨트롤 동작을 수정하는 데 사용되며 다음 ControlStyle을 추가합니다.
▶ ControlStyles.Opaque: 컨트롤의 배경이 그려지지 않도록 하여 시스템에서 관리되지 않도록 합니다. CreateParams와 함께 사용하여 컨트롤의 확장 스타일을 WS_EX_TRANSPARENT로 설정하면 컨트롤이 완전히 투명해집니다.
▶ ControlStyles.SupportsTransparentBackColor: 컨트롤은 배경색으로 알파 값을 허용합니다. ControlStyles.UserPaint도 설정하지 않으면 투명도를 시뮬레이션하는 데 사용되지 않습니다. 우리는 다른 방법을 통해 스스로 할 것입니다.
작동 방식을 보려면 새 클래스 파일을 만들고, 그 안의 모든 코드를 이 코드로 바꾸고, 네임스페이스를 유지하고 프로젝트/솔루션을 빌드하세요.
도구 상자에 새로운 사용자 정의 컨트롤이 나타납니다. 양식에 끌어서 놓습니다. 필요에 따라 사용자 정의 속성을 수정합니다.
컨트롤의 시각적 표현:
참고 및 면책조항
위 내용은 다른 컨트롤과 겹치지 않는 텍스트로 반투명 원형 컨트롤을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!