Mouse.MouseDown 연결된 이벤트

정의

마우스 단추를 누를 때 발생합니다.Occurs when any mouse button is depressed.

see AddMouseDownHandler, and RemoveMouseDownHandler
see AddMouseDownHandler, and RemoveMouseDownHandler
see AddMouseDownHandler, and RemoveMouseDownHandler

설명

마우스 단추를 눌린 상태를 확인 하려면 ChangedButton 처리기에 전달 된의 속성을 확인 합니다 MouseButtonEventArgs .To determine which mouse button was depressed, check the ChangedButton property in the MouseButtonEventArgs passed to the handler.

연결 된 이벤트입니다.This is an attached event. WPF는 연결 된 이벤트를 라우트된 이벤트로 구현 합니다.WPF implements attached events as routed events. 연결 된 이벤트는 기본적으로 해당 이벤트를 정의 하지 않는 개체에 대해 처리할 수 있는 이벤트를 참조 하는 XAML 언어 개념입니다. WPF는 이벤트를 사용 하 여 경로를 트래버스할 수도 있습니다.Attached events are fundamentally a XAML language concept for referencing events that can be handled on objects that do not define that event, which WPF expands upon by also enabling the event to traverse a route. 연결 된 이벤트 코드에서 직접 처리 구문이 없습니다 지정 된 추가 사용 하면 코드에서 라우트된 이벤트에 대 한 처리기를 연결 하려면 * 처리기 메서드.Attached events do not have a direct handling syntax in code; to attach handlers for a routed event in code, you use a designated Add*Handler method. 자세한 내용은 참조 하세요 연결 된 이벤트 개요합니다.For details, see Attached Events Overview.

WPF (Windows Presentation Foundation) 프레임 워크는 및에 대 한 두 개의 서로 다른 CLR (공용 언어 런타임) 이벤트로 연결 하 여이 연결 된 이벤트를 기반으로 UIElement ContentElement MouseLeftButtonDown MouseRightButtonDown 합니다.The Windows Presentation Foundation (WPF) framework builds on this attached event by surfacing it as two different common language runtime (CLR) events on UIElement and ContentElement: MouseLeftButtonDown and MouseRightButtonDown. 이러한 구현은 기본 이벤트를 처리 하 MouseDown 고 이벤트의 인수를 읽어 왼쪽 또는 오른쪽 마우스 단추가 관련 되어 있는지 여부를 확인 합니다.These implementations handle the underlying MouseDown event and read the arguments of the event to determine whether the left or right mouse button was involved. 3 단추 마우스의 경우 가운데 단추에 대 한 프레임 워크 수준 이벤트는 지원 되지 않습니다.For a three-button mouse, there is no framework-level event support for the center button. 이벤트를 사용 하 여 MouseDown MiddleButton 이벤트 인수의 상태를 확인 해야 합니다.You should use the MouseDown event and check the MiddleButton state in the event arguments.

중요

ContentElement컨트롤과 같은 동작을 포함 하는 몇 가지 파생 클래스 (예:)에는 Hyperlink 마우스 단추 이벤트에 대 한 고유 클래스 처리가 있을 수 있습니다.A few ContentElement derived classes that have control-like behavior, for example, Hyperlink, might have inherent class handling for mouse button events. 왼쪽 마우스 단추 down 이벤트는 컨트롤에서 클래스 처리를 가질 가능성이 가장 높은 이벤트입니다.The left mouse button down event is the most likely event to have class handling in a control. 클래스 처리는 주로 내부 Mouse 클래스 이벤트를 처리 된 것으로 표시 합니다.The class handling often marks the underlying Mouse class event as handled. 이벤트가 처리 된 것으로 표시 되 면 해당 요소에 연결 된 다른 인스턴스 처리기가 일반적으로 발생 하지 않습니다.Once the event is marked handled, other instance handlers that are attached to that element are not ordinarily raised. UI 트리에서 루트 방향으로 버블링의 요소에 연결 된 다른 모든 클래스 또는 인스턴스 처리기도 일반적으로 발생 하지 않습니다.Any other class or instance handlers that are attached to elements in the bubbling direction towards the root in the UI tree are also not ordinarily raised.

위의 중요 한 참고 사항에 설명 된 문제를 해결 하 고 MouseDown 다음 솔루션 중 하나를 사용 하 여 클래스 처리를 포함 하는 파생 클래스에서 마우스 왼쪽 단추 다운 이벤트에 대 한 이벤트를 계속 받을 수 있습니다.You can resolve the issue that is outlined in the preceding Important note and still receive MouseDown events for left mouse button down events on a derived class that has class handling by using either of these solutions:

  • 컨트롤에 의해 처리 된 것으로 PreviewMouseDown 표시 되지 않은 이벤트에 대 한 처리기를 연결 합니다.Attach handlers for the PreviewMouseDown event, which is not marked as handled by the controls. 이 이벤트는 미리 보기 이벤트 이므로 경로가 루트에서 시작 하 고 컨트롤에 대 한 터널을 만듭니다.Notice that because this is a preview event, the route starts at the root and tunnels down to the control.

  • AddHandler라우트된 이벤트 데이터에서 이미 처리 된 것으로 표시 된 경우에도 처리기가 이벤트를 수신할 수 있도록 하는 서명 옵션을 호출 하 고 선택 하 여 procedurally 컨트롤에 처리기를 등록 합니다.Register a handler on the control procedurally by calling AddHandler and choosing the signature option that enables handlers to listen for events even if they are already marked as handled in the routed event data.

마우스와 관련 된 라우트된 이벤트의 경우 처리 여부를 표시 하는 방법과 시기에 주의 하세요.For routed events that relate to the mouse, be careful about how or when you mark them handled. 부모 요소에 지정 된 마우스 동작에 대 한 정보를 알려야 하는지 여부를 적절 하 게 선택 하는 어려움은 실제로 WPF 프레임 워크에서 기본 마우스 라우트된 이벤트를 경로를 따라 CLR 이벤트로 표시 하는 모델을 선택한 이유입니다.The difficulty in making the appropriate choices about whether parent elements should also be informed about any given mouse action is in fact why the WPF framework chose the model of having the underlying mouse routed event be surfaced as CLR events along the route. 터널링 마우스 이벤트에도 유사한 문제가 있습니다.Similar issues exist with tunneling mouse events. 이벤트를 처리 하 고 해당 이벤트를 소스에 대 한 추가 자식에서 처리 하지 않아야 하며,이로 인해 작성 부분이 마우스 동작을 예상 하는 컨트롤의 합성에 영향을 미치는 방법이 무엇 인가요?Should you handle the event and not have it be handled by further children toward the source, and how would that affect compositing a control where the compositing pieces might have expected mouse behaviors?

라우팅 이벤트 정보Routed Event Information

식별자 필드Identifier field MouseDownEvent
라우팅 전략Routing strategy 버블링Bubbling
대리자Delegate MouseButtonEventHandler

적용 대상