2011-01-13 3 views
2

저는이 이미지가 있고 다른 이미지 위에 놓기를 원합니다.컨트롤을 위에 놓으십시오.

(윈도우 폼 응용 프로그램, C#을)

+1

프론트에 가져 오거나 맨 위로 가져 오는 방법이 있습니까? 코드 또는 심지어 IDE의 마우스 오른쪽 버튼 메뉴에서 – Tim

답변

6

는 하나의 제어가 부분적으로 다른 중첩, 당신은 하나 원하거나 상단에있는 다른 있다면, 당신은 디자이너의 상단에 원하는 이미지를 마우스 오른쪽 단추로 클릭하고 "가져 앞으로 ". 다른 이미지 뒤에있는 이미지에서 사용할 수있는 "뒤로 보내기"가 있습니다.

상단 이미지의 알파 마스크 나 두 이미지 사이의 그라디언트 혼합과 같이 부분 투명도를 사용하려면 WPF 그래픽의 고급 기능이 필요할 것입니다. WinForms에서 픽셀 단위로 효과를 낼 수는 있지만 이미지 투명도를 처리하기 위해 Winforms에 내장 된 것이 없으며 Winforms에서 이미지의 픽셀 단위 조작으로 모든 그래픽 가속 (CPU 사용률 100 % , 런타임 오버 헤드가 더 낮아진다).

5

코드에는 몇 가지 전화가 있습니다. BringToFrontSendToBack 아마도 간단한입니다 :

yourControl.BringToFront(); 
yourControl.SendToBack(); 

은 또한 당신이 Control.ControlCollection.SetChildIndex를 사용하여 컨트롤의 부모 컨테이너에서 해당를 제어 할 수 있습니다. 예를 들어 :
// Bring control to front  
MyForm.Controls.SetChildIndex(SomeControl, 0); 

그렇지 않으면 그냥 "앞으로 가져 오기"를 클릭하거나 @KeithS가 이미 응답 한대로, 디자이너에서 "뒤로 보내기".

+1

나를 위해 작동하지 않았다, someControl.BringToFront()를 사용하여 끝났다 –

+0

좋은 지적! - 예제로 추가했습니다. – noelicus

관련 문제