2017-01-23 8 views
0

모듈 형 콘텐츠로 응용 프로그램을 개발할 계획입니다. 모듈 식 컨텐츠는 사용자 정의 사용자 정의 컨트롤 일뿐입니다. 또한 응용 프로그램은 click 이벤트와 같은 사용자 입력을 비활성화 할 수 있어야합니다. 그것은 기본적으로 이벤트 터널링을 설정, 그래서 난 내 호스트모든 컨트롤에서 이벤트 터널링을 기본값으로 설정합니다.

event.Handled = true; 

을하고 소스 (모듈 형 컨텐츠)의에 도달하는 이벤트를 방지 할 수 수 있습니까? 따라서 콘텐츠에 관계없이 언제나 이벤트가 버블 링되기보다는 터널링되기를 원합니다.

여기에 내가 내 요구

어쩌면 그렇게 할 "더 나은"방법이 Basic application sketch을 입증하기 위해 만든 간단한 스케치입니다. 그렇다면 의견을 공유하십시오.

+0

몇 가지 아이디어를 보려면http://stackoverflow.com/questions/634434/add-listener-for-all-element-events-in-wpf를 참조하십시오. –

답변

1

내가 제대로 이해하면 당신은 모듈 형 컨텐츠에 이르기까지 터널링에서 라우트 된 이벤트를 방지하기 위해 true로 MouseButtonEventArgs.Handled 속성을 호스트 윈도우의 PreviewMouseLeftButtonDown 이벤트를 처리하고 설정할 수 있습니다 :

public partial class HostWindow : Window 
{ 
    public HostWindow() 
    { 
     InitializeComponent(); 
     PreviewMouseLeftButtonDown += (s, e) => e.Handled = true; 
    } 
} 

이해야 효과적으로 UserControl에서 왼쪽 버튼 마우스 입력을 비활성화합니다. 다른 여러 미리보기 이벤트도 있습니다. https://msdn.microsoft.com/en-us/library/ms752279(v=vs.110).aspx