none
Mouse scroll su lista interna RRS feed

  • Discussione generale

  • Ciao a tutti,

    ho una domanda riguardo l'uso della rotellina del mouse su una listview.

    In un controllo utente, ho due listView, la più esterna usa un itemtemplate che, a sua volta, incorpora una listview. 

    La listview interna mostra sempre tutti gli elementi al suo interno, quindi non deve essere scrollabile, e già di default non presenta nessuna scrollbar. La lista più esterna, invece, mostra gli elementi che può, ed è quindi molto probabile che venga mostrata la scrollbar verticale.

    Se con il mouse mi posiziono su una lista interna, e muovo la rotellina per fare lo scroll, lo scroll stesso viene gestito dalla lista interna, ma non avendo nulla da scorrere, non succede niente. Essendo però lo scroll del mouse gestito dalla lista interna, naturalmente quella esterna non fa nessuno scorrimento.

    Ho pensato quindi, nel code behind, di intercettare il routed event "MouseScrolling", ma non viene alzato.

    Avete qualche idea, per una soluzione alla questione?

    mercoledì 13 ottobre 2021 13:33

Tutte le risposte

  • Mi rispondo da solo, magari farà comodo a qualcuno in futuro.

    Ho aggiunto un gestore dell'evento PreviewMouseWeel per la lista interna, ed all'interno di questo gestore, faccio rialzare un evento MouseWheelEvent

    Scritto in VB diventa:

    Dim ui As UIElement = DirectCast(sender, UIElement)
    Dim e2 = New MouseWheelEventArgs(e.MouseDevice, e.Timestamp, e.Delta)
    e2.RoutedEvent = UIElement.MouseWheelEvent
    ui.[RaiseEvent](e2)

    giovedì 14 ottobre 2021 06:59