UIElement.OnPreviewMouseDown(MouseButtonEventArgs) Metoda

Definicja

Wywoływane, gdy nieobsłużone PreviewMouseDown dołączone zdarzenie kierowane osiągnie element w swojej trasie, który jest pochodną tej klasy.Invoked when an unhandled PreviewMouseDown attached routed event reaches an element in its route that is derived from this class. Zaimplementuj tę metodę, aby dodać obsługę klasy dla tego zdarzenia.Implement this method to add class handling for this event.

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

MouseButtonEventArgs, który zawiera dane zdarzenia.The MouseButtonEventArgs that contains the event data. Dane zdarzenia raportują, że co najmniej jeden przycisk myszy został naciśnięty.The event data reports that one or more mouse buttons were pressed.

Uwagi

Akcje przycisków myszy są również obsługiwane przez dedykowanego Menedżera danych wejściowych.Mouse button actions are also handled by a dedicated input manager. Inne funkcje programistyczne, które opierają się na akcjach przycisku myszy, takie jak powiązania danych wejściowych i poleceń, mogą wywoływać programy obsługi dla akcji, zanim zostanie ono ujawnione jako ogólna akcja przycisku myszy.Other programming features that rely on mouse button actions, such as input and command bindings, might invoke handlers for the action before it is exposed as a general mouse button action. Jeśli te funkcje systemu wejściowego oznaczą Mouse.PreviewMouseDown zdarzenie jako obsłużone, OnPreviewMouseDown nie jest wywoływana.If these input system features mark the Mouse.PreviewMouseDown event as handled, OnPreviewMouseDown is not invoked.

Jeśli używasz tej procedury obsługi klasy do oznaczania zdarzenia jako obsługiwanego, może to mieć wpływ na następujące zdarzenia: PreviewMouseLeftButtonDown i PreviewMouseRightButtonDown.If you use this class handler to mark the event as handled, you potentially impact the following events: PreviewMouseLeftButtonDown and PreviewMouseRightButtonDown. Każde z tych zdarzeń może zostać zgłoszone dla elementu odbiorczego po odebraniu Mouse.PreviewMouseDown.Either of these events may be raised on the receiving element when Mouse.PreviewMouseDown is received.

Po oznaczeniu tego zdarzenia jako obsługiwanego w obsłudze klasy, podzdarzenia nadal są wywoływane; jednak przechodzą stan obsłużony w danych zdarzenia.If you mark this event as handled in class handling, subevents are still raised; however, they pass the handled state in the event data. Jeśli zdarzenie jest obsługiwane w obsłudze klas, programy obsługi wystąpień dla zdarzeń nie są wywoływane, chyba że jawnie użyto AddHandler(RoutedEvent, Delegate, Boolean) z handledEventsToo true w celu dołączenia programów obsługi.If the event is handled in class handling, instance handlers for the subevents are not invoked unless you explicitly use AddHandler(RoutedEvent, Delegate, Boolean) with handledEventsToo true in order to attach handlers. Procedury obsługi klas również nie są wywoływane, jeśli te programy obsługi klas nie zostały zarejestrowane przy użyciu podpisu RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) z handledEventsToo true.Class handlers also are not invoked unless those class handlers were registered with the RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) signature with handledEventsToo true. Dzięki obsłudze OnPreviewMouseDownoznaczasz, że obsługa klasy obsługiwała wszystkie możliwe akcje przycisku myszy.By handling OnPreviewMouseDown, you are implying that your class handling accounted for all possible mouse button down actions. Takie zachowanie może być niepożądane; W związku z tym należy zachować ostrożność podczas używania tej metody wirtualnej do oznaczania zdarzeń jako obsłużonych.This behavior might be unwanted; Therefore, use caution when you use this virtual method to mark events as handled.

Każde zdarzenie bezpośrednie specyficzne dla przycisku ma także wirtualną metodę on *; Zastanów się, czy przesłanianie tych programów obsługi klas właściwych dla przycisku może być bardziej odpowiednie.Each of the button-specific direct events also has a virtual On* method; consider whether overriding these button-specific class handlers might be more appropriate.

Ta metoda nie ma domyślnej implementacji.This method has no default implementation. Ponieważ Klasa pośrednicząca w dziedziczeniu może implementować tę metodę, zalecamy wywołanie podstawowej implementacji w implementacji.Because an intermediate class in the inheritance might implement this method, we recommend that you call the base implementation in your implementation.

Celem tej metody jest podobna do wzorca zdarzeń środowisko uruchomieniowe języka wspólnego (CLR)common language runtime (CLR) dla * metod: Ta metoda zapewnia metodę do obsługi pasującego zdarzenia z klas pochodnych przez ustanowienie procedury obsługi klas zamiast procedury obsługi wystąpienia.The purpose of this method is similar to the środowisko uruchomieniowe języka wspólnego (CLR)common language runtime (CLR) event pattern On* methods: this method provides the means to handle the matching event from derived classes by establishing a class handler instead of an instance handler. W takim przypadku zdarzenie dopasowywania jest zdarzeniem kierowanym.In this case the matching event is a routed event. Wzorzec implementacji metod on * jest różny dla zdarzeń kierowanych, ponieważ zdarzenie trasowane może być zgłaszane przez element podrzędny, który nie musi być elementem, który wywoła procedury obsługi.The implementation pattern of the On* methods is different for routed events because a routed event can be raised by a child element, which is not necessarily the element that will invoke handlers. W związku z tym implementacja musi przeanalizować właściwości źródłowe danych zdarzenia.Therefore, your implementation needs to examine the source properties of the event data. Nie należy próbować ponownie podnieść poziomu zdarzenia w większości przypadków.It should not try to reraise the event in most cases.

Przez zastąpienie tej metody lub przez zarejestrowanie obsługi klas w RegisterClassHandlerpochodne klasy UIElement mogą wywołać metody obsługi klasy prywatnej, gdy zdarzenie jest odbierane wzdłuż trasy zdarzenia.Either by overriding this method or by registering class handlers with RegisterClassHandler, derived classes of UIElement can call private class handler methods when the event is received along the event route. Jednym z scenariuszy, w których obsługiwana jest Klasa, jest manipulowanie danymi zdarzenia i oznaczenie zdarzenia kierowanego jako obsługiwanego.One scenario where class handling is appropriate is to manipulate the event data and mark the routed event as handled. Innym scenariuszem przeznaczonym dla zdarzeń w wersji zapoznawczej jest oznaczenie ich jako obsłużonych w taki sposób, aby nie były wywoływane zgodne procedury obsługi klasy propagacji.Another scenario that is specifically for Preview events is to mark them handled so that the matching bubbling class handlers are not invoked.

Dotyczy

Zobacz też