... 내 자신의 질문에 대답 :
이 솔루션은 매우 간단하다, 내가 위젯을 다시 그려야하는 복잡한 코드를 찾고있는 동안 ... 필요로하는 모든 수행 할 이 EventBox를 설정하는 것입니다. VisibleWindow 멤버를 'false'로 설정합니다 (기본적으로 'true'). EventBox가 그려지지 않고, EventBox 안의 이미지가 투명한 영역을 가지고 있다면, 그들은 아래에 무엇이 있는지를 보여줄 것입니다.
아래 예제에서 :
mapBox.VisibleWindow = false;
및
pinBox.VisibleWindow = false;
내가 볼 수있는 한, 위젯이 화면 위쪽에있는 Z 순서 (EventBox가 그려지지 않은 경우 EventBox.GdkWindow.Lower) 또는 Raised() 멤버가 아무 것도하지 않음).
예 : 수퍼 유저
// Showing a map in an invisible EventBox
EventBox mapBox = new EventBox();
mapBox.Visible = true;
mapBox.VisibleWindow = false;
fixed1.Add(mapBox);
fixed1.Move (mapBox, 0, 0);
Image mapImage = new Image("map.png");
mapImage.Visible = true;
mapBox.Add (mapImage);
// Showing a pin image with transparent areas, in an invisible EventBox, on top of the map
EventBox pinBox = new EventBox();
pinBox.Visible = true;
pinBox.VisibleWindow = false;
fixed1.Add(pinBox);
fixed1.Move (pinBox, 60, 60);
Image pinImage = new Image("redpin.png");
pinImage.Visible = true;
pinBox.Add (pinImage);
에 오신 것을 환영합니다! 이것은 프로그래밍 문제입니다. 주제는 여기에 있습니다. 스택 오버플로로 이동하기로 결정 했으므로 여기에도 질문을 작성할 필요가 없습니다. 수퍼 유저는 일반적인 컴퓨터 사용과 가정 환경에서의 문제 해결에 더 많은 반면 Stack Overflow는 프로그래밍 질문을위한 것입니다 –
저는 임시 해결책으로 카이로를 사용하여 PNG 파일을 만들고 모든 투명한 이미지를 해당 PNG 파일에 '페인트'한 다음로드합니다 결과 PNG 파일을 다시 하나의 단일 이벤트 상자에 저장합니다. 원유이지만 작동합니다. 하지만 EventBox를 투명하게 만들어서 모든 이미지를 EventBox에로드하고 화면에 표시 할 수있는 확실한 솔루션을 고맙게 생각합니다. 누구 제안? – OM55