2011-02-11 4 views
1

저는 C#으로 양식을 작성 중이며 몇 개의 패널이 있습니다. 두 개의 패널 사이에 선을 그려야합니다. 저는 온라인에서 여러 가지 방법을 찾았습니다. 가장 유망한 점은 세 번째 패널을 만들고, 투명하게 만들고, 원래 패널 위에 배치하고 여기에 선을 그려주는 것입니다.두 개의 다른 기존 패널 위에 투명 System.Windows.Forms.Panel을 만들고 투명 패널에 선을 그리려면 어떻게해야합니까?

BackColor 및 ForeColor 속성을 투명하게 (코드 또는 디자인 뷰에서 VS로 설정 한 경우에도) 투명하게 패널을 가져올 수 없습니다.

패널 자체를 투명하게 (또는 보이지 않게) 만드는 방법에 대한 아이디어는 있지만 그 위에 그려지는 선은 다른 모든 것 위에 표시되어 있습니까?

미리 감사드립니다.

답변

2

아니요, 투명합니다. 폼의 BackgroundImage에 값을 제공하여 이것을보십시오. 투명 패널을 통해이를 볼 수 있습니다. 물론, 그것은 원하는 투명성이 아니며, 스태킹 효과가 작동되기를 원합니다. 직접적인 지원은 없습니다.

레이어를 작동 시키려면 컨트롤을 사용하지 마십시오. 그릴 때 Paint 이벤트를 사용하십시오. 이제 아무런 문제가 없습니다. 투명성을 원한다면 페인트 만하지 마세요. 먼저 이미지를 그린 다음 이미지 전체에 선을 그립니다. 이것은 WPF의 렌더링 모델이기도합니다.

+0

한 패널에서 다른 패널로가는 선을 그리는 방법이 있습니까? 다른 패널의 가장자리에서 만나는 2 개의 선을 그립니다. – Boumbles

+0

아니요, 컨트롤에서 멀리 떨어져 있어야합니다. 패널과 비슷한 것을 그리는 일은 그리 어렵지 않습니다. Graphics.DrawRectangle(). –

+0

브래그. 불행히도 그들과 붙어있을 수도 있습니다. 나는 선 대신에 내가 할 수있는 다른 것을 시도하고 생각할 것이다. 그래도 도와 ​​줘서 고마워, 뭔가 배웠어! – Boumbles

0

실제로 이것을 자신의 UserControl처럼 쉽게 할 수 있습니다. 다음 코드 예제 :

Drawing on top of controls inside a panel (C# WinForms)

이 원래 만 대신 투명 패널의 상단에 선을 그리는 할 시도했던 것과 유사하다,이 코드는 (불규칙한 모양의 사용자 정의 컨트롤을 생성하는 줄의 불규칙한 모양에있을 때).

관련 문제