ContentElement.OnPreviewMouseDown(MouseButtonEventArgs) ContentElement.OnPreviewMouseDown(MouseButtonEventArgs) ContentElement.OnPreviewMouseDown(MouseButtonEventArgs) ContentElement.OnPreviewMouseDown(MouseButtonEventArgs) Method

정의

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

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

매개 변수

e
MouseButtonEventArgs MouseButtonEventArgs MouseButtonEventArgs MouseButtonEventArgs

이벤트 데이터를 포함하는 MouseButtonEventArgs입니다.The MouseButtonEventArgs that contains the event data. 이벤트 데이터는 하나 이상의 마우스 단추를 놓았음을 보고합니다.The event data reports that one or more mouse buttons were pressed.

설명

마우스 단추 작업 전용된 입력된 관리자에서 처리 됩니다.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.PreviewMouseDown 이벤트를 처리 OnPreviewMouseDown 호출 되지 않습니다.If these input system features mark the Mouse.PreviewMouseDown event as handled, OnPreviewMouseDown is not invoked.

다음 이벤트 영향 처리 이벤트를 표시 하려면이 클래스 처리기를 사용 하는 경우: PreviewMouseLeftButtonDownPreviewMouseRightButtonDown입니다.If you use this class handler to mark the event as handled, you potentially impact the following events: PreviewMouseLeftButtonDown and PreviewMouseRightButtonDown. 이러한 이벤트 중 하나가 받는 요소에서 발생할 수 있습니다 때 Mouse.PreviewMouseDown 수신 됩니다.Either of these events may be raised on the receiving element when Mouse.PreviewMouseDown 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. 처리 하 여 OnPreviewMouseDown는 처리 하면 클래스 처리에 작업 아래로 모든 가능한 마우스 단추입니다.By handling OnPreviewMouseDown, 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.

각 단추 전용 직접 이벤트에는 가상의* 메서드도 있습니다. 이러한 단추의 특정 클래스 처리기를 재정의 하는 것이 더 적합할 수 있습니다.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의 파생 클래스인 ContentElement 이벤트 경로 따라 이벤트를 받으면 전용 클래스 처리기 메서드를 호출할 수 있습니다.Either by overriding this method or by registering class handlers with RegisterClassHandler, derived classes of ContentElement 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. 다른 시나리오는 미리 보기 이벤트는 일치 하는 버블링 클래스 처리기가 호출 되지 않습니다 있도록 처리 된 것으로 표시 하는 것입니다.Another scenario that is specifically for Preview events is to mark them handled so that the matching bubbling class handlers are not invoked.

적용 대상

추가 정보