Sdílet prostřednictvím


ContentElement.OnPreviewMouseDown(MouseButtonEventArgs) Metoda

Definice

Vyvolá se, když neošetřená PreviewMouseDown připojená směrovaná událost dosáhne prvku v jeho trase, která je odvozena z této třídy. Implementujte tuto metodu pro přidání zpracování tříd pro tuto událost.

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)

Parametry

e
MouseButtonEventArgs

MouseButtonEventArgs, která obsahuje data události. Data událostí hlásí, že byla stisknuta jedna nebo více tlačítek myši.

Poznámky

Akce tlačítka myši jsou také zpracovávány vyhrazeným správcem vstupu. Další programovací funkce, které se spoléhají na akce tlačítka myši, jako jsou vstupy a vazby příkazů, mohou vyvolat obslužné rutiny akce předtím, než se zobrazí jako obecná akce tlačítka myši. Pokud tyto funkce vstupního systému označí událost Mouse.PreviewMouseDown jako zvládnutou, OnPreviewMouseDown se nevyvolá.

Pokud tuto obslužnou rutinu třídy použijete k označení události jako popisované, potenciálně ovlivníte následující události: PreviewMouseLeftButtonDown a PreviewMouseRightButtonDown. Při přijetí Mouse.PreviewMouseDown může být u přijímajícího prvku vyvolána kterákoliv z těchto událostí.

Pokud tuto událost označíte jako zpracovávanou ve zpracování třídy, jsou dílčí události stále vyvolány; ale předají zpracovávaný stav v datech události. Pokud je událost zpracována ve zpracování tříd, obslužné rutiny instancí pro dílčí události nejsou vyvolány, pokud explicitně nepoužíváte AddHandler(RoutedEvent, Delegate, Boolean) s handledEventsTootrue pro připojení obslužných rutin. Obslužné rutiny třídy se také nevyvolávají, pokud nebyly tyto obslužné rutiny třídy registrovány v RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) podpisu s handledEventsTootrue. Zpracování OnPreviewMouseDownznamená, že vaše třída zpracovává všechny možné akce tlačítka myši. Toto chování může být nežádoucí; Proto při použití této virtuální metody buďte opatrní k označení událostí jako zpracovávaných.

Každá z přímých událostí specifických pro tlačítko má také virtuální on* metodu; zvažte, zda přepsání těchto obslužných rutin tříd specifických pro tlačítko může být vhodnější.

Tato metoda nemá výchozí implementaci. Vzhledem k tomu, že zprostředkující třída v dědičnosti může implementovat tuto metodu, doporučujeme volat základní implementaci ve vaší implementaci.

Účelem této metody je podobné vzoru událostí CLR (Common Language Runtime) On*: tato metoda poskytuje prostředky pro zpracování odpovídající události z odvozených tříd vytvořením obslužné rutiny třídy místo obslužné rutiny instance. V tomto případě je odpovídající událost směrovanou událostí. Model implementace metod On* se u směrovaných událostí liší, protože směrovaná událost může být vyvolána podřízeným elementem, což není nutně prvek, který vyvolá obslužné rutiny. Proto vaše implementace potřebuje prozkoumat zdrojové vlastnosti dat události. Ve většině případů by se neměla pokoušet událost znovu zobrazit.

Buď přepsáním této metody, nebo registrací obslužných rutin třídy v RegisterClassHandler, odvozené třídy ContentElement mohou volat metody obslužné rutiny privátní třídy při přijetí události podél trasy události. Jedním ze scénářů, kdy je vhodné zpracovat třídy, je manipulovat s daty událostí a označit směrovanou událost jako zpracovávanou. Dalším scénářem, který je určený speciálně pro události ve verzi Preview, je označit je, aby odpovídající obslužné rutiny třídy bublání nebyly vyvolány.

Platí pro

Viz také