UIElement.OnPreviewMouseDown(MouseButtonEventArgs) Metoda

Definicja

Wywoływane, gdy nieobsługiwane PreviewMouseDown dołączone zdarzenie kierowane dociera do elementu w swojej trasie, który pochodzi z tej klasy. Zaimplementuj tę metodę, aby dodać obsługę klas dla tego zdarzenia.

protected:
 virtual void OnPreviewMouseDown(System::Windows::Input::MouseButtonEventArgs ^ e);
protected 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 Overridable Sub OnPreviewMouseDown (e As MouseButtonEventArgs)

Parametry

e
MouseButtonEventArgs

Element MouseButtonEventArgs zawierający dane zdarzenia. Dane zdarzenia zgłaszają, że naciśnięty został co najmniej jeden przycisk myszy.

Uwagi

Akcje przycisku myszy są również obsługiwane przez dedykowanego menedżera danych wejściowych. Inne funkcje programowania, które polegają na akcjach przycisku myszy, takich jak powiązania danych wejściowych i poleceń, mogą wywoływać programy obsługi akcji przed ujawnieniem jej jako ogólnej akcji przycisku myszy. Jeśli te funkcje systemu wejściowego oznaczą Mouse.PreviewMouseDown zdarzenie jako obsługiwane, OnPreviewMouseDown nie jest wywoływane.

Jeśli używasz tej procedury obsługi klas do oznaczania zdarzenia jako obsługiwanego, potencjalnie wpłynie to na następujące zdarzenia: PreviewMouseLeftButtonDown i PreviewMouseRightButtonDown. Po odebraniu jednego z tych zdarzeń może zostać zgłoszony element Mouse.PreviewMouseDown odbierający.

Jeśli oznaczysz to zdarzenie jako obsługiwane w obsłudze klas, nadal są zgłaszane subevents; jednak przekazują one obsługiwany stan w danych zdarzenia. Jeśli zdarzenie jest obsługiwane w obsłudze klas, programy obsługi wystąpień dla wymyślień podrzędnych nie są wywoływane, chyba że jawnie jest używane AddHandler(RoutedEvent, Delegate, Boolean)handledEventsTootrue do dołączania programów obsługi. Programy obsługi klas również nie są wywoływane, chyba że te programy obsługi klas zostały zarejestrowane przy użyciu RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) podpisu z handledEventsTootrue. Obsługa metody oznacza, że obsługa OnPreviewMouseDownklas uwzględnia wszystkie możliwe akcje przycisku myszy w dół. To zachowanie może być niepożądane; Dlatego należy zachować ostrożność podczas używania tej metody wirtualnej do oznaczania zdarzeń jako obsługiwanych.

Każde z zdarzeń bezpośrednich specyficznych dla przycisku ma również wirtualną metodę On*; rozważ, czy zastępowanie tych procedur obsługi klas specyficznych dla przycisków może być bardziej odpowiednie.

Ta metoda nie ma domyślnej implementacji. Ponieważ klasa pośrednia w dziedziczeniu może zaimplementować tę metodę, zalecamy wywołanie podstawowej implementacji w implementacji.

Cel tej metody jest podobny do wzorca zdarzeń środowiska uruchomieniowego języka wspólnego (CLR) On*: ta metoda zapewnia środki do obsługi pasującego zdarzenia z klas pochodnych przez ustanowienie procedury obsługi klas zamiast procedury obsługi wystąpień. W takim przypadku zgodne zdarzenie jest zdarzeniem kierowanym. Wzorzec implementacji metod On* różni się w przypadku zdarzeń kierowanych, ponieważ zdarzenie kierowane może być wywoływane przez element podrzędny, który niekoniecznie jest elementem, który będzie wywoływać programy obsługi. W związku z tym implementacja musi zbadać właściwości źródłowe danych zdarzenia. W większości przypadków nie należy próbować przeprowadzić ponownej oceny zdarzenia.

Przez zastąpienie tej metody lub zarejestrowanie procedur obsługi klas za RegisterClassHandlerpomocą klasy pochodnej UIElement klasy może wywoływać metody procedury obsługi klas prywatnych, gdy zdarzenie jest odbierane wzdłuż trasy zdarzenia. Jednym ze scenariuszy, w którym obsługa klas jest odpowiednia, jest manipulowanie danymi zdarzenia i oznaczanie zdarzenia kierowanego zgodnie z obsługą. Innym scenariuszem, który jest przeznaczony dla zdarzeń w wersji zapoznawczej, jest oznaczenie ich obsłużonych tak, aby pasujące programy obsługi klas nie zostały wywołane.

Dotyczy

Zobacz też