UIElement.OnMouseDown(MouseButtonEventArgs) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Wywoływane, gdy nieobsługiwane zdarzenie MouseDown dołączone dociera do elementu w swojej trasie pochodzącej z tej klasy. Zaimplementuj tę metodę, aby dodać obsługę klas dla tego zdarzenia.
protected:
virtual void OnMouseDown(System::Windows::Input::MouseButtonEventArgs ^ e);
protected virtual void OnMouseDown (System.Windows.Input.MouseButtonEventArgs e);
abstract member OnMouseDown : System.Windows.Input.MouseButtonEventArgs -> unit
override this.OnMouseDown : System.Windows.Input.MouseButtonEventArgs -> unit
Protected Overridable Sub OnMouseDown (e As MouseButtonEventArgs)
Parametry
MouseButtonEventArgs, który zawiera dane zdarzenia. Te dane zdarzenia zawierają szczegółowe informacje na temat naciśnięcia przycisku myszy i stanu obsługiwanego.
Uwagi
Akcje przycisku myszy są również obsługiwane przez dedykowanego menedżera danych wejściowych. Inne funkcje programowania, które opierają się na akcjach przycisku myszy, takich jak powiązania danych wejściowych i poleceń, mogą wywoływać programy obsługi dla akcji, zanim zostaną uwidocznione jako ogólna akcja przycisku myszy. Jeśli te funkcje systemu wejściowego oznaczą zdarzenie Mouse.MouseDown jako obsługiwane, OnMouseDown nie jest wywoływana.
Jeśli używasz tej procedury obsługi klas do oznaczania zdarzenia jako obsługiwanego, potencjalnie wpłynie to na następujące zdarzenia: MouseLeftButtonDown i MouseRightButtonDown. Po odebraniu Mouse.MouseDown jeden z tych zdarzeń może zostać podniesiony do elementu odbierającego.
Jeśli oznaczysz to zdarzenie jako obsługiwane w obsłudze klas, nadal są wywoływane podventy; jednak przekazują stan obsłużony w danych zdarzenia. Jeśli zdarzenie jest obsługiwane w obsłudze klas, programy obsługi wystąpień dla podwentu nie są wywoływane, chyba że jawnie użyjesz AddHandler(RoutedEvent, Delegate, Boolean) z handledEventsToo
true
w celu dołączenia programów obsługi. Programy obsługi klas nie są również wywoływane, chyba że te programy obsługi klas zostały zarejestrowane przy użyciu podpisu RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) z handledEventsToo
true
. Obsługa OnMouseDownoznacza, że obsługa klasy uwzględnia wszystkie możliwe akcje przycisku myszy w dół. Takie zachowanie może być niepożądane; Dlatego należy zachować ostrożność podczas używania tej metody wirtualnej do oznaczania zdarzeń jako obsłużonych.
Każde z zdarzeń bezpośrednich specyficznych dla przycisku ma również wirtualną metodę On*; należy rozważyć, czy zastąpienie 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 implementacji podstawowej 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ących zdarzeń z klas pochodnych przez ustanowienie procedury obsługi klas zamiast programu 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 nie musi być 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 podejmować próby ponownego odzyskania zdarzenia.
Przesłaniając tę metodę lub rejestrując programy obsługi klas za pomocą RegisterClassHandler, klasy pochodne UIElement mogą wywoływać metody 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 zdarzeń i oznaczanie kierowanego zdarzenia zgodnie z obsługą.