2011-01-25 2 views
1

WPF 응용 프로그램에서 Grid 내 CustomControls 묶음이 있습니다. 내가 UserControl을에 다음 그리드 내부의 모든 CustomControls을 배치 할 때 문제가 나타WPF FrameworkElement 마우스 클릭 문제

private void Grid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) 
    { 
     FrameworkElement feSourceComm = e.Source as FrameworkElement; 
     MyCustomControl SCurrentComm = new MyCustomControl();    
     try 
     { 
      SCurrentComm = (MyCustomControl)feSourceComm; 
     } 
     catch (Exception) 
     { 
... 

: 마우스를 처리함으로써 그들에게 클릭을 위해 나는 CustomControl가 클릭 한 내가 체크 이벤트 핸들러 그리드와의 MouseLeftButtonDown 이벤트를 사용합니다. 이 경우 접근법이 작동하지 않습니다.
나는 e.Source.GetType().ToString();에 의해 각각의 경우에 클릭 소스의 유형을 확인하고 얻을 다음과 같은 결과 :


MyProjectNamespace.MyCustomControl 

(내가 UserControl을하지 않고 그리드에 CustomControls를 넣어 경우) 문제가 없으면 내가 그리드

MyProjectNamespace.UserControls.MyUserControlName 

에 다음의 UserControl에 CustomControls을 넣어 때 나는 UserCo에 CustomControls을 넣었을 때 ntrol 후 그리드 및, 그래서 XamlReader.Load

System.Windows.Controls.UserControl 

으로 내 질문에 외부 파일에서 해당 UserControl을로드 : 그들이 UserControl을 내부에있을 때
방법 e.Source로 vizible CustomControls을 만들 수 있습니까?

답변

2

e.OriginalSource 클릭이 발생한 특정 요소를 알려줍니다. 사용자 정의 컨트롤이 아닌 경우 OriginalSource의 상위 체인을 걸어 사용자 정의 컨트롤을 찾습니다.

+0

예, 작동합니다. 감사! +1 – rem