UIElement.OnMouseDown(MouseButtonEventArgs) UIElement.OnMouseDown(MouseButtonEventArgs) UIElement.OnMouseDown(MouseButtonEventArgs) UIElement.OnMouseDown(MouseButtonEventArgs) Method

정의

처리되지 않은 MouseDown 연결 이벤트가 해당 경로에서 이 클래스로부터 파생된 요소에 도달할 경우 호출됩니다.Invoked when an unhandled MouseDown attached event reaches an element in its route that is derived from this class. 이 이벤트에 대한 클래스 처리를 추가하려면 이 메서드를 구현합니다.Implement this method to add class handling for this event.

protected:
 virtual void OnMouseDown(System::Windows::Input::MouseButtonEventArgs ^ e);
protected virtual void OnMouseDown (System.Windows.Input.MouseButtonEventArgs e);
abstract member OnMouseDown : System.Windows.Input.MouseButtonEventArgs -> unit
override this.OnMouseDown : System.Windows.Input.MouseButtonEventArgs -> unit
Protected Overridable Sub OnMouseDown (e As MouseButtonEventArgs)

매개 변수

e
MouseButtonEventArgs MouseButtonEventArgs MouseButtonEventArgs MouseButtonEventArgs

이벤트 데이터를 포함하는 MouseButtonEventArgs입니다.The MouseButtonEventArgs that contains the event data. 이 이벤트 데이터는 누른 상태 및 처리된 상태의 마우스 단추에 대한 세부 사항을 보고합니다.This event data reports details about the mouse button that was pressed and the handled state.

설명

마우스 단추 작업 전용된 입력된 관리자에서 처리 됩니다.Mouse button actions are also handled by a dedicated input manager. 바인딩, 명령 및 입력과 같은 마우스 단추 작업을 사용 하는 다른 프로그래밍 기능 일반 마우스 단추 작업으로 노출 되기 전에 작업에 대 한 처리기를 호출할 수 있습니다.Other programming features that rely on mouse button actions, such as input and command bindings, might invoke handlers for the action before it is exposed as a general mouse button action. 이러한 시스템 기능 표시를 입력 합니다 Mouse.MouseDown 이벤트를 처리 OnMouseDown 호출 되지 않습니다.If these input system features mark the Mouse.MouseDown event as handled, OnMouseDown is not invoked.

다음 이벤트 영향 처리 이벤트를 표시 하려면이 클래스 처리기를 사용 하는 경우: MouseLeftButtonDownMouseRightButtonDown입니다.If you use this class handler to mark the event as handled, you potentially impact the following events: MouseLeftButtonDown and MouseRightButtonDown. 이러한 이벤트 중 하나가 받는 요소에서 발생할 수 있습니다 때 Mouse.MouseDown 수신 됩니다.Either of these events may be raised on the receiving element when Mouse.MouseDown is received.

이 이벤트를 처리 하는 클래스에서 처리를 표시 하는 경우 하위 이벤트는 여전히 발생 합니다. 그러나 이벤트 데이터의 처리 상태를 전달합니다.If you mark this event as handled in class handling, subevents are still raised; however, they pass the handled state in the event data. 명시적으로 사용 하지 않는 한 하위 이벤트에 대 한 인스턴스 처리기 호출 되지 이벤트 클래스 처리에서 처리 되 면 AddHandler(RoutedEvent, Delegate, Boolean) 사용 하 여 handledEventsToo true 처리기를 연결 하기 위해.If the event is handled in class handling, instance handlers for the subevents are not invoked unless you explicitly use AddHandler(RoutedEvent, Delegate, Boolean) with handledEventsToo true in order to attach handlers. 클래스 처리기도 호출 되지 않으면 해당 클래스 처리기에 등록 된 합니다 RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) 서명을 handledEventsToo true합니다.Class handlers also are not invoked unless those class handlers were registered with the RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) signature with handledEventsToo true. 처리 하 여 OnMouseDown는 처리 하면 클래스 처리에 작업 아래로 모든 가능한 마우스 단추입니다.By handling OnMouseDown, you are implying that your class handling accounted for all possible mouse button down actions. 이 동작은 원치 않을; 따라서이 가상 메서드를 사용 하 여 이벤트를 처리 됨으로 표시 하는 경우 주의 해야 합니다.This behavior might be unwanted; Therefore, use caution when you use this virtual method to mark events as handled.

각 단추 관련 직접 이벤트에는 가상 On * 메서드 여부를 이러한 단추 관련 클래스 처리기를 재정의 더 적합할 것이 좋습니다.Each of the button-specific direct events also has a virtual On* method; consider whether overriding these button-specific class handlers might be more appropriate.

이 메서드는 기본 구현이 없습니다.This method has no default implementation. 상속의 중간 클래스는이 메서드를 구현할 수 있으므로 구현에서 기본 구현을 호출 하는 것이 좋습니다.Because an intermediate class in the inheritance might implement this method, we recommend that you call the base implementation in your implementation.

이 메서드의 용도 비슷합니다는 CLR(공용 언어 런타임)common language runtime (CLR) 이벤트 패턴에서 * 메서드:이 메서드는 인스턴스 처리기 대신 클래스 처리기를 설정 하 여 파생된 클래스에서 일치 하는 이벤트를 처리 하는 방법을 제공 합니다.The purpose of this method is similar to the CLR(공용 언어 런타임)common language runtime (CLR) event pattern On* methods: this method provides the means to handle the matching event from derived classes by establishing a class handler instead of an instance handler. 이 경우 일치 하는 이벤트는 라우트된 이벤트가입니다.In this case the matching event is a routed event. On * 메서드의 구현 패턴 라우트된 이벤트에 대 한 다른 이므로 처리기를 호출 하는 요소가 아닌 자식 요소를 통해 라우트된 이벤트를 발생 시킬 수 있습니다.The implementation pattern of the On* methods is different for routed events because a routed event can be raised by a child element, which is not necessarily the element that will invoke handlers. 따라서 이벤트 데이터의 원본 속성을 확인 하려면 구현 해야 합니다.Therefore, your implementation needs to examine the source properties of the event data. 대부분의 이벤트를 다시 발생 시키면 하지 않아야 합니다.It should not try to reraise the event in most cases.

이 메서드를 재정의 하거나 등록 하 여 클래스 처리기 RegisterClassHandler의 파생 클래스인 UIElement 이벤트 경로 따라 이벤트를 받으면 전용 클래스 처리기 메서드를 호출할 수 있습니다.Either by overriding this method or by registering class handlers with RegisterClassHandler, derived classes of UIElement can call private class handler methods when the event is received along the event route. 클래스 처리 적합 한 시나리오는 이벤트 데이터를 조작 하 고 처리 된 것으로 라우트된 이벤트를 표시 하는 것입니다.One scenario where class handling is appropriate is to manipulate the event data and mark the routed event as handled.

적용 대상

추가 정보