Condividi tramite


Mouse.MouseDown Evento associato

Definizione

Si verifica quando viene premuto un pulsante qualsiasi del mouse.

see AddMouseDownHandler, and RemoveMouseDownHandler
see AddMouseDownHandler, and RemoveMouseDownHandler
see AddMouseDownHandler, and RemoveMouseDownHandler

Commenti

Per determinare quale pulsante del mouse è stato depresso, controllare la ChangedButton proprietà nell'oggetto MouseButtonEventArgs passato al gestore.

Si tratta di un evento collegato. WPF implementa eventi collegati come eventi indirizzati. Gli eventi collegati sono fondamentalmente un concetto di linguaggio XAML per fare riferimento agli eventi che possono essere gestiti su oggetti che non definiscono tale evento, che WPF si espande anche consentendo all'evento di attraversare una route. Gli eventi collegati non hanno una sintassi di gestione diretta nel codice; per collegare gestori per un evento indirizzato nel codice, usare un metodo Add*Handler designato. Per informazioni dettagliate, vedere Panoramica degli eventi collegati.

Il framework Windows Presentation Foundation (WPF) si basa su questo evento collegato passandolo come due eventi CLR (Common Language Runtime) diversi su UIElement e : MouseLeftButtonDown e ContentElementMouseRightButtonDown. Queste implementazioni gestiscono l'evento sottostante MouseDown e leggeno gli argomenti dell'evento per determinare se è stato coinvolto il pulsante del mouse sinistro o destro. Per un mouse a tre pulsanti, non è disponibile alcun supporto per eventi a livello di framework per il pulsante centrale. È consigliabile usare l'evento e controllare lo stato negli argomenti dell'evento MouseDownMiddleButton .

Importante

Alcune ContentElement classi derivate con comportamento simile al controllo, ad esempio , Hyperlinkpotrebbero avere una gestione intrinseca della classe per gli eventi del pulsante del mouse. L'evento del pulsante destro del mouse verso il basso è l'evento più probabile che abbia la gestione della classe in un controllo. La gestione della classe contrassegna spesso l'evento di classe sottostante Mouse come gestito. Dopo che l'evento viene contrassegnato come gestito, altri gestori di istanze collegati a tale elemento non vengono normalmente generati. Tutti gli altri gestori di classi o istanze collegati agli elementi nella direzione di bubbling verso la radice nell'albero dell'interfaccia utente non vengono anche generati normalmente.

È possibile risolvere il problema descritto nella nota importante precedente e ricevere MouseDown eventi per gli eventi del pulsante destro del mouse verso il basso in una classe derivata che ha la gestione della classe usando una di queste soluzioni:

  • Collegare gestori per l'evento PreviewMouseDown , che non viene contrassegnato come gestito dai controlli. Si noti che perché si tratta di un evento di anteprima, la route inizia alla radice e tunnels fino al controllo.

  • Registrare un gestore nel controllo in modo procedurale chiamando AddHandler e scegliendo l'opzione di firma che consente ai gestori di ascoltare gli eventi anche se sono già contrassegnati come gestiti nei dati degli eventi indirizzati.

Per gli eventi indirizzati correlati al mouse, prestare attenzione a come o quando vengono contrassegnati. La difficoltà di fare le scelte appropriate su se anche gli elementi padre devono essere informati su qualsiasi azione del mouse specificata è il motivo per cui il framework WPF ha scelto il modello di avere l'evento indirizzato del mouse sottostante come eventi CLR lungo la route. Problemi simili esistono con gli eventi del mouse di tunneling. È consigliabile gestire l'evento e non gestirlo da altri elementi figlio verso l'origine e come ciò influisce sulla composizione di un controllo in cui potrebbero essere previsti comportamenti del mouse?

Informazioni evento indirizzato

Campo Identificatore MouseDownEvent
Strategia di routing Bubbling
Delegato MouseButtonEventHandler

Si applica a