UIElement.OnPreviewMouseUp(MouseButtonEventArgs) Metoda

Definice

Vyvolána, když neošetřená připojená PreviewMouseUp 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řídy pro tuto událost.

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

Parametry

e
MouseButtonEventArgs

Hodnota MouseButtonEventArgs , která obsahuje data události. Data událostí hlásí, že bylo uvolněno jedno nebo více tlačítek myši.

Poznámky

Akce tlačítka myši jsou také zpracovávány vyhrazeným správcem vstupů. Jiné programovací funkce, které se spoléhají na akce tlačítka myši, jako jsou vstupní a příkazové vazby, můžou vyvolat obslužné rutiny pro danou akci předtím, než se zobrazí jako obecná akce tlačítka myši. Pokud tyto funkce vstupního systému označí Mouse.PreviewMouseUp událost jako zpracovávanou, OnPreviewMouseUp není vyvolána.

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

Pokud označíte tuto událost jako zpracovávanou ve zpracování třídy, jsou stále vyvolány subeventy; ale předávají zpracovávaný stav v datech událostí. Pokud je událost zpracována ve zpracování třídy, obslužné rutiny instance pro subevents nejsou vyvolány, pokud explicitně nepoužijete AddHandler(RoutedEvent, Delegate, Boolean) s handledEventsTootrue pro připojení obslužných rutin. Obslužné rutiny třídy také nejsou vyvolány, pokud tyto obslužné rutiny třídy nebyly zaregistrovány RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) s podpisem pomocí handledEventsTootrue. Zpracováním znamenáte OnPreviewMouseUp, že zpracování vaší třídy zahrnuje 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 k označení událostí jako zpracovaných buďte opatrní.

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

Tato metoda nemá žádnou 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 v implementaci.

Účel této metody je podobný vzoru událostí Common Language Runtime (CLR) 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, který nemusí být nutně elementem, který bude volat obslužné rutiny. Proto vaše implementace musí prozkoumat vlastnosti zdroje dat událostí. Ve většině případů by se nemělo pokoušet událost opakovat.

Buď přepsáním této metody nebo registrací obslužných rutin třídy s RegisterClassHandler, odvozené třídy UIElement mohou volat metody obslužné rutiny privátní třídy, když je událost přijata podél trasy události. Jedním ze scénářů, kdy je zpracování třídy vhodné, je manipulace s daty událostí a označení směrované události jako zpracovávané.

Platí pro

Viz také