UIElement.OnPreviewMouseDown(MouseButtonEventArgs) UIElement.OnPreviewMouseDown(MouseButtonEventArgs) UIElement.OnPreviewMouseDown(MouseButtonEventArgs) UIElement.OnPreviewMouseDown(MouseButtonEventArgs) Method

Definizione

Viene richiamato ogni volta che un evento indirizzato associato PreviewMouseDown non gestito raggiunge un elemento nella propria route derivato da questa classe.Invoked when an unhandled PreviewMouseDown attached routed event reaches an element in its route that is derived from this class. Implementare questo metodo per aggiungere la gestione delle classi per questo evento.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)

Parametri

e
MouseButtonEventArgs MouseButtonEventArgs MouseButtonEventArgs MouseButtonEventArgs

Oggetto MouseButtonEventArgs che contiene i dati dell'evento.The MouseButtonEventArgs that contains the event data. I dati dell'evento indicano che sono stati premuti uno o più pulsanti del mouse.The event data reports that one or more mouse buttons were pressed.

Commenti

Anche le azioni dei pulsanti del mouse vengono gestite da un gestore di input dedicato.Mouse button actions are also handled by a dedicated input manager. Le altre funzionalità di programmazione che si basano sulle azioni dei pulsanti del mouse, ad esempio le associazioni di input e comandi, potrebbero richiamare gestori per l'azione prima che venga esposta come azione generale del pulsante del mouse.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. Se queste funzionalità del sistema di input Mouse.PreviewMouseDown contrassegnano l'evento OnPreviewMouseDown come gestito, non viene richiamato.If these input system features mark the Mouse.PreviewMouseDown event as handled, OnPreviewMouseDown is not invoked.

Se si utilizza questo gestore classi per contrassegnare l'evento come gestito, si potrebbero avere effetti sui seguenti PreviewMouseLeftButtonDown eventi PreviewMouseRightButtonDown: e.If you use this class handler to mark the event as handled, you potentially impact the following events: PreviewMouseLeftButtonDown and PreviewMouseRightButtonDown. Uno di questi eventi può essere generato sull'elemento ricevente quando Mouse.PreviewMouseDown viene ricevuto.Either of these events may be raised on the receiving element when Mouse.PreviewMouseDown is received.

Se si contrassegna questo evento come gestito nella gestione delle classi, i SubEvent vengono comunque generati; Tuttavia, passano lo stato gestito nei dati dell'evento.If you mark this event as handled in class handling, subevents are still raised; however, they pass the handled state in the event data. Se l'evento viene gestito nella gestione delle classi, i gestori di istanze per le sottoclassi non vengono richiamati, a meno AddHandler(RoutedEvent, Delegate, Boolean) che handledEventsToo non si utilizzi in modo esplicito con true per associare i gestori.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. Anche i gestori classi non vengono richiamati, a meno che tali gestori di classi RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) non siano handledEventsToo stati registrati con la firma con true.Class handlers also are not invoked unless those class handlers were registered with the RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) signature with handledEventsToo true. Grazie alla OnPreviewMouseDowngestione di, si presuppone che la gestione delle classi sia stata rappresentata per tutte le possibili azioni di pulsante del mouse.By handling OnPreviewMouseDown, you are implying that your class handling accounted for all possible mouse button down actions. Questo comportamento potrebbe essere indesiderato. Pertanto, prestare attenzione quando si utilizza questo metodo virtuale per contrassegnare gli eventi come gestiti.This behavior might be unwanted; Therefore, use caution when you use this virtual method to mark events as handled.

Ogni evento diretto specifico del pulsante dispone anche di un metodo virtuale on *; tenere presente che l'override di questi gestori di classi specifici del pulsante potrebbe essere più appropriato.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.

Questo metodo non ha un'implementazione predefinita.This method has no default implementation. Poiché una classe intermedia nell'ereditarietà può implementare questo metodo, è consigliabile chiamare l'implementazione di base nell'implementazione di.Because an intermediate class in the inheritance might implement this method, we recommend that you call the base implementation in your implementation.

Lo scopo di questo metodo è simile al Common Language Runtime (CLR)common language runtime (CLR) modello di evento nei metodi *: questo metodo fornisce i mezzi per gestire l'evento di corrispondenza dalle classi derivate mediante la definizione di un gestore di classi invece di un gestore di istanza.The purpose of this method is similar to the Common Language Runtime (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. In questo caso, l'evento corrispondente è un evento indirizzato.In this case the matching event is a routed event. Il modello di implementazione dei metodi on * è diverso per gli eventi indirizzati perché un evento indirizzato può essere generato da un elemento figlio, che non è necessariamente l'elemento che richiamerà i gestori.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. Pertanto, l'implementazione deve esaminare le proprietà di origine dei dati dell'evento.Therefore, your implementation needs to examine the source properties of the event data. Non tentare di rigenerare l'evento nella maggior parte dei casi.It should not try to reraise the event in most cases.

Eseguendo l'override di questo metodo o registrando i gestori di classi con RegisterClassHandler, le classi derivate di possono chiamare metodi del gestore della UIElement classe privata quando l'evento viene ricevuto lungo la route dell'evento.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. Uno scenario in cui la gestione delle classi è appropriata è modificare i dati degli eventi e contrassegnare l'evento indirizzato come gestito.One scenario where class handling is appropriate is to manipulate the event data and mark the routed event as handled. Un altro scenario specifico per gli eventi di anteprima consiste nel contrassegnarli come gestiti in modo che non vengano richiamati i gestori della classe di bubbling corrispondente.Another scenario that is specifically for Preview events is to mark them handled so that the matching bubbling class handlers are not invoked.

Si applica a

Vedi anche