Mouse.MouseDown Přidružená událost

Definice

Vyvolá se při stisknutí libovolného tlačítka myši.Occurs when any mouse button is depressed.

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

Poznámky

Chcete-li zjistit, které tlačítko myši bylo stisknuto, zkontrolujte ChangedButton vlastnost v MouseButtonEventArgs předané obslužné rutině.To determine which mouse button was depressed, check the ChangedButton property in the MouseButtonEventArgs passed to the handler.

Toto je připojená událost.This is an attached event. WPF implementuje připojené události jako směrované události.WPF implements attached events as routed events. Připojené události jsou zásadním konceptem jazyka XAML pro odkazování na události, které mohou být zpracovány u objektů, které tuto událost nedefinují, na kterých se WPF rozbalí, a to povolením události procházet trasou.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. Připojené události neobsahují přímou syntaxi zpracování v kódu; Chcete-li připojit obslužné rutiny pro směrovanou událost v kódu, použijte určenou metodu Add * Handler.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. Podrobnosti najdete v tématu Přehled připojených událostí.For details, see Attached Events Overview.

Rozhraní Windows Presentation Foundation (WPF) sestavuje tuto připojenou událost tím, že ji zpřístupnění jako dvě různé události modulu CLR (Common Language Runtime) v systémech UIElement a ContentElement : MouseLeftButtonDown a 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. Tyto implementace zpracovávají základní MouseDown událost a čtou argumenty události k určení, zda se jednalo o levé nebo pravé tlačítko myši.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. Pro myš na tři tlačítky není pro tlačítko uprostřed k dispozici žádná podpora událostí na úrovni architektury.For a three-button mouse, there is no framework-level event support for the center button. Měli byste použít MouseDown událost a ověřit MiddleButton stav v argumentech události.You should use the MouseDown event and check the MiddleButton state in the event arguments.

Důležité

Několik ContentElement odvozených tříd, které mají chování podobné ovládacímu prvku, například Hyperlink může mít vlastní zpracování třídy pro události tlačítek myši.A few ContentElement derived classes that have control-like behavior, for example, Hyperlink, might have inherent class handling for mouse button events. Levé tlačítko myši dolů je nejpravděpodobnější událost, která má v ovládacím prvku zpracování tříd.The left mouse button down event is the most likely event to have class handling in a control. Zpracování tříd často označuje Mouse událost základní třídy jako zpracovanou.The class handling often marks the underlying Mouse class event as handled. Jakmile je událost označena jako zpracovaná, jiné obslužné rutiny instance, které jsou připojeny k tomuto prvku, nejsou obvykle vyvolány.Once the event is marked handled, other instance handlers that are attached to that element are not ordinarily raised. Jakékoli jiné třídy nebo obslužné rutiny instance, které jsou připojeny k prvkům v směru probublávání směrem ke kořenu ve stromu uživatelského rozhraní, nejsou také obvykle vyvolány.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.

Můžete vyřešit problém, který je popsaný v předchozí důležité poznámce, a nadále přijímat MouseDown události pro události levého tlačítka myši v odvozené třídě, která má zpracování tříd pomocí některého z těchto řešení: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:

  • Připojte obslužné rutiny pro PreviewMouseDown událost, která není označena jako zpracovávaná ovládacími prvky.Attach handlers for the PreviewMouseDown event, which is not marked as handled by the controls. Všimněte si, že vzhledem k tomu, že se jedná o událost ve verzi Preview, trasa začíná kořenem a tunely nasměrují do ovládacího prvku.Notice that because this is a preview event, the route starts at the root and tunnels down to the control.

  • Zaregistrujte obslužnou rutinu v ovládacím prvku v procedurálním voláním AddHandler a výběrem možnosti podpisu, která umožňuje obslužným rutinám naslouchat událostem, i když jsou již označeny jako zpracované v datech směrované události.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.

U směrovaných událostí, které se vztahují na myš, buďte opatrní na to, jak nebo kdy je označíte jako zpracovávané.For routed events that relate to the mouse, be careful about how or when you mark them handled. Obtížnost při vytváření vhodných možností, zda by měly být informace o všech zadaných akcích myši také informovány o všech daných akcích myši, je ve skutečnosti, proč architektura WPF zvolí model s podkladovou událostí směrované myši na trasu jako události 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. Podobné problémy existují i při tunelování událostí myši.Similar issues exist with tunneling mouse events. Měli byste událost zpracovat a nemusíte ji zpracovat dalšími podřízenými objekty ke zdroji a jak by ovlivnilo skládání ovládacího prvku, kde by mohly být očekávané chování myši?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?

Informace o směrované událostiRouted Event Information

Pole identifikátoruIdentifier field MouseDownEvent
Strategie směrováníRouting strategy ŠířeníBubbling
DelegátDelegate MouseButtonEventHandler

Platí pro