[개발] Label 배경색 투명으로 변경하기

in mini.topia3 months ago

안녕하세요 @realmankwon 입니다.

C# 에서 Label 의 BackColor를 투명으로 해야할 경우가 있습니다.
저같은 경우 요즘 OpenCV 를 통해서 캠에서 찍은 영상을 바로 PictureBox에 올리고 그 위에 Label을 올려서 개발을 하다보니 언급한 기능이 필요했습니다.
그런데 단순히 Label의 BackColor 속성을 Transparent 해 준다고 투명이 되지는 않았습니다.

이상한건 3개의 Label을 올렸는데 그 중에 1개는 투명이 된 것입니다.
투명이 된 Label의 속성과 다른 2개의 속성을 비교해 봐도 그 차이를 알 수가 없었습니다.
그래서 복사를 해서 사용했는데 복사한 것도 투명이 되지 않았습니다.

결국은 구글링...
구글이 없었으면 저는 개발자로서 아무것도 못했을 것 같군요...ㅜㅜ
암튼 찾아본 결과 Parent 속성을 변경해 주어야 했습니다.

보통 Label 을 생성하면 기본값은 Label 이 생성된 Form으로 설정이 되어 있습니다.
이것을 Form 이 아닌 Label 뒤에 있는 Control로 변경을 해주니 잘 동작을 하였습니다.

아래와 같이 왼쪽에 보시면 Disconnected, Test 로 적힌 것을 보시면 Disconnected 는 배경색과 동일한데 Test는 원래 자신의 배경색 그대로 되어 있는 것을 알 수 있습니다.

아래와같이 설정한 후의 화면은 다음과 같이 배경색이 투명이 되어 아래의 컨트롤 배경색을 그대로 보여주어서 자연스럽게 되었습니다.

lblTest.Parent = [Control 명];


디자인 화면에서도 보이지 않는 속성이 있으니 이런 속성들은 소스단에서 수정을 해주어야 한다는 것을 다시 한번 알게 되었습니다.