2010-07-20 4 views
2

, 나는 몇 가지 중복 도형 그리기 오전 MouseEnter 이벤트, Opacity=0.5 각, 여기에 같은 :WPF : 불투명도 및 다이어그램의 일환으로

사용자가 마우스로 모양을 입력
<Grid> 
    <Rectangle Fill="Blue" Opacity="0.5" MouseEnter="Rectangle_MouseEnter" /> 
    <Rectangle Fill="Red" Opacity="0.5" /> 
</Grid> 


private void Rectangle_MouseEnter(object sender, MouseEventArgs e) 
    { 
    MessageBox.Show("Entered"); 
    } 

, 몇 가지 추가 정보가 표시되어야하지만 이벤트 핸들러는 결코 호출되지 않습니다.

맨 위에있는 모양 대신 모든 모양에 대해 MouseEnter 이벤트를 가져 오는 방법이 있습니까?

답변

2

레이아웃에서 맨 위의 사각형 만 MouseEnter 이벤트를 발생시킵니다. 첫 번째 사각형과 완전히 겹칩니다.

는 이벤트 핸들러에 대한이 코드를보십시오 :

private void Rectangle_MouseEnter(object sender, MouseEventArgs e) 
     { 
      if (sender != grid.Children[0]) 
      { 
       var rect = (grid.Children[0] as Rectangle); 
       if (rect != null) rect.RaiseEvent(e); 
      } 
      else 
      { 
       MessageBox.Show("Entered."); 
      } 
     } 

을이 당신이 Rectangle_MouseEnter에 두 사각형을 신청해야 작품.

+0

예, 눈치 챘습니다. =) 사용자가 다른 영역 뒤에있는 영역에 들어 왔을 때 알림을받을 수있는 또 다른 방법이 있습니까? – Jens

+0

MouseEnter 및 MouseLeave 이벤트는 커서를 놓는 컨트롤 위에 놓고 버블 링하지 않고 올리는 것이 좋습니다. http://msdn.microsoft.com/en-us/library/cc189029(v=VS.95).aspx#mouse_routed_events –

+0

업데이트를 확인하십시오. 도움이 될 수 있습니다. –

관련 문제