2016-11-13 6 views
0

WF에서 반투명 배경으로 바탕 화면 테두리가 적은 위젯을 만들고 싶습니다. 이처럼 : C# WF 반투명 형식

enter image description here

그러나 지금은 운

. 내가 달성 할 수있는 모든

this.Opacity = .4; 

나는 또한 backgroundImage의 병용 TransparencyKey에 지출 일부 시간

this.BackColor = Color.Black; 
this.TransparencyKey = this.BackColor; 

또는 전체 양식 전체 배경 투명하지만, 결과는 단지 검은 색 배경이었다.

완전 필사적으로 필자는 텍스트로 완전히 투명한 두 개의 폼을 만들고 불투명도로 두 번째 폼을 만들었지 만, 움직이는 동안 첫 번째 윈도우를 위의 것으로 유지할 수 없어 텍스트가 희미하게 보였다.

WF에서 이것을 만들 가능성이 있거나 QT 또는 철저한 창 라이브러리를 찾아야합니다.

+0

계층화 된 Windows를 사용할 수 있습니다. 예를 들어, [Windows Form Transparent Background Image] (http://stackoverflow.com/a/33531201/3110834)를보십시오. –

+0

일반적으로 두 개의 창을 샌드위치해야합니다. 아래쪽은 불투명도를 사용하고 위쪽은 TransparencyKey를 사용합니다. 그러나 예측할 수없는 배경에 텍스트를 표시하는 것은 일반적으로 매우 나쁜 생각입니다. 표준 앤티 앨리어스 효과가 더 이상 제대로 작동하지 않으며 문자 모양을 배경에 더 이상 혼합하지 않습니다. 그들은 꽤 보이게되고 텍스트는보기 흉하게 보입니다. 올바른 방법은 Graphics.CopyFromScreen()을 사용하여 스크린 샷을 만들고 알파가 255 미만인 브러시로 비트 맵을 변경 한 다음 그 위에 텍스트를 그립니다. 스플래시 화면에서 잘 작동합니다. –

+0

한스 전 샌드위치를 ​​만들었습니다. 글꼴이 좋아 보이지만 배경이 투명 할 때 창을 클릭하고 기본 문구를 선택할 수 있습니다. 제 경우에는 배경 레이어를 맨 위에 배치하고 희미한 텍스트는 사용할 수 없습니다. – Sajgoniarz

답변

0

연구가 끝난 후 Windows 10에서 작동하는 솔루션을 찾지 못했습니다. 작동하는 방법이없는 것처럼 보입니다. 그래서 WPF에서이 프로젝트를 만들었습니다.이 프로젝트는 쉽게 만들 수 있습니다.