정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

UIElement.OnMouseDown 메서드

처리되지 않은 Mouse.MouseDown 연결된 이벤트가 해당 경로에서 이 클래스에서 파생된 요소에 도달할 때 호출됩니다. 이 이벤트에 대한 클래스 처리를 추가하려면 이 메서드를 구현합니다.

네임스페이스:  System.Windows
어셈블리:  PresentationCore(PresentationCore.dll)

protected virtual void OnMouseDown(
	MouseButtonEventArgs e
)

매개 변수

e
형식: System.Windows.Input.MouseButtonEventArgs
이벤트 데이터가 들어 있는 MouseButtonEventArgs입니다. 이 이벤트 데이터는 누른 마우스 단추 및 처리된 상태에 대한 세부 정보를 보고합니다.

마우스 단추 작업도 전용 입력 관리자에서 처리됩니다. 입력 및 명령 바인딩과 같은 마우스 단추 작업을 사용하는 기타 프로그래밍 기능은 작업이 일반 마우스 단추 작업으로 노출되기 전에 이 작업에 대한 처리기를 호출할 수 있습니다. 이러한 입력 시스템 기능에서 Mouse.MouseDown 이벤트가 처리된 것으로 표시하면 OnMouseDown이 호출되지 않습니다.

이 클래스 처리기를 사용하여 이벤트를 처리된 것으로 표시하면 MouseLeftButtonDownMouseRightButtonDown 이벤트가 영향을 받을 수 있습니다. 이들 이벤트는 Mouse.MouseDown을 받을 때 받는 요소에서 발생할 수 있습니다.

이 이벤트를 클래스 처리에서 처리된 것으로 표시하는 경우에도 하위 이벤트는 여전히 발생합니다. 하지만 하위 이벤트에서 이벤트 데이터를 통해 처리된 상태를 전달합니다. 클래스 처리에서 이벤트를 처리하면 사용자가 처리기를 연결하기 위해 명시적으로 AddHandler(RoutedEvent, Delegate, Boolean)handledEventsToo true와 함께 사용하는 경우가 아니면 하위 이벤트에 대한 인스턴스 처리기는 호출되지 않습니다. 또한 클래스 처리기는 RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) 시그니처에 handledEventsToo true로 등록된 경우 이외에는 호출되지 않습니다. OnMouseDown 을 처리하면 클래스 처리에 가능한 모든 마우스 단추 누르기 작업이 포함됩니다. 원하지 않는 동작일 수 있으므로 이 가상 메서드를 사용하여 이벤트를 처리된 것으로 표시할 때는 주의하십시오.

각 단추 특정 직접 이벤트에는 가상 On* 메서드도 있습니다. 이러한 단추 특정 클래스 처리기를 재정의하는 것이 더 적합한지 고려하십시오.

이 메서드는 기본적으로 구현되지 않습니다. 상속의 중간 클래스가 이 메서드를 구현했을 수 있기 때문에 구현에서는 기본 구현을 호출하는 것이 좋습니다.

이 메서드의 목적은 CLR(공용 언어 런타임) 이벤트 패턴 On* 메서드와 유사합니다. 즉, 파생된 클래스에서 인스턴스 처리기 대신 클래스 처리기를 사용하여 일치하는 이벤트를 처리하는 방법을 제공합니다. 이 경우 일치하는 이벤트는 라우트된 이벤트입니다. 라우트된 이벤트는 처리기를 호출할 요소일 필요가 없는 자식 요소에 의해 발생할 수 있기 때문에 라우트된 이벤트의 On* 메서드 구현 패턴은 다릅니다. 따라서 구현에서 이벤트 데이터의 소스 속성을 검사해야 합니다. 대부분의 경우 이벤트를 다시 발생시키면 안 됩니다.

이 메서드를 재정의하거나 클래스 처리기를 RegisterClassHandler를 사용하여 등록하면 이벤트가 이벤트 경로를 따라 수신될 때 UIElement의 파생된 클래스에서 전용 클래스 처리기 메서드를 호출할 수 있습니다. 클래스 처리가 적절한 한 가지 시나리오는 이벤트 데이터를 조작하고 라우트된 이벤트를 처리된 것으로 표시하는 것입니다.

.NET Framework

4.5, 4, 3.5, 3.0에서 지원

.NET Framework Client Profile

4, 3.5 SP1에서 지원

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008(서버 코어 역할은 지원되지 않음), Windows Server 2008 R2(서버 코어 역할은 SP1 이상에서 지원, Itanium은 지원되지 않음)

.NET Framework 에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 다음을 참조하십시오. .NET Framework 시스템 요구 사항.

커뮤니티 추가 항목

표시:
© 2014 Microsoft