UIElement.OnMouseDown(MouseButtonEventArgs) Metoda

Definicja

Wywoływane, gdy nieobsługiwane MouseDown dołączone zdarzenie 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

e
MouseButtonEventArgs

Element MouseButtonEventArgs zawierający dane zdarzenia. Te dane zdarzenia zawierają szczegółowe informacje na temat naciśnięcia przycisku myszy i stanu obsłużonego.

Uwagi

Akcje przycisku myszy są również obsługiwane przez dedykowanego menedżera danych wejściowych. Inne funkcje programowania, które polegają na akcjach przycisków 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ą Mouse.MouseDown zdarzenie jako obsługiwane, OnMouseDown nie jest wywoływane.

Jeśli używasz tej procedury obsługi klas do oznaczania zdarzenia jako obsługiwanego, potencjalnie wpływa to na następujące zdarzenia: MouseLeftButtonDown i MouseRightButtonDown. Jedno z tych zdarzeń może zostać podniesione do elementu odbierającego po Mouse.MouseDown odebraniu.

Jeśli oznaczysz to zdarzenie jako obsługiwane w obsłudze klas, zdarzenia podrzędne będą nadal zgłaszane; jednak przekazują one stan obsłużony w danych zdarzenia. Jeśli zdarzenie jest obsługiwane w obsłudze klas, programy obsługi wystąpień dla zdarzeń podrzędnych nie są wywoływane, chyba że jawnie używasz polecenia AddHandler(RoutedEvent, Delegate, Boolean) w handledEventsTootrue celu dołączenia procedur 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 RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) podpisu za pomocą handledEventsTootruepolecenia . Obsługa metody OnMouseDownoznacza, że obsługa klasy 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łużonych.

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

Ta metoda nie ma implementacji domyślnej. 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 wydarzenia.

Przez zastąpienie tej metody lub zarejestrowanie procedur obsługi klas za RegisterClassHandlerpomocą klasy pochodnej UIElement klasy klasy może wywołać metody procedury obsługi klas prywatnych, gdy zdarzenie jest odbierane wzdłuż trasy zdarzeń. Jednym ze scenariuszy, w którym obsługa klas jest odpowiednia, jest manipulowanie danymi zdarzenia i oznaczanie kierowanego zdarzenia jako obsługiwanego.

Dotyczy

Zobacz też