Wie ScrollViewer in ListBox zu deaktivieren?

7

Ich habe eine ListBox. Es hat internen ScrollViewer, also kann ich ListBox Inhalt mit dem Mausrad scrollen. Es funktioniert gut, bis ich Artikelvorlage, die eine andere ListBox enthält (tatsächlich habe ich 4 verschachtelte ListBoxen =)). Problem ist, dass der ScrollViewer der internen ListBox Wheeling-Ereignis stiehlt. Gibt es eine einfache Möglichkeit, dieses Verhalten zu verhindern?

Ich hatte ListBox mit ItemContainerStyle wie folgt:

%Vor%

Wie kann ich den Stil für den Artikelrahmen von ItemContainer in solchen Ressourcen festlegen? Wie ich weiß, ContentPresenter ist Artikel Container von ItemsControl. Aber Border hat es nicht, also kann ich es nicht stylen.

    
levanovd 15.11.2009, 23:08
quelle

4 Antworten

40

Sie können ScrollViewer aus einem ListBox entfernen, indem Sie die Kontrollvorlage in etwas viel Einfacheres ändern:

%Vor%

Ich frage jedoch den Wert der ListBoxen verschachteln. Denken Sie daran, dass jedes ListBox ein Selektor ist und ein Konzept hat, welches Element "ausgewählt" ist. Macht es wirklich Sinn, einen ausgewählten Gegenstand innerhalb eines ausgewählten Gegenstandes innerhalb eines ausgewählten Gegenstandes zu haben?

Ich würde vorschlagen, das "innere" ListBoxes in das einfache ItemsControls zu ändern, damit die verschachtelten Listen keine ausgewählten Elemente haben können. Das würde für eine viel einfachere Benutzererfahrung sorgen. Möglicherweise müssen Sie die innere ItemsControls noch auf die gleiche Weise neu beschriften, um die Bildlaufleisten zu entfernen, aber zumindest wird der Benutzer nicht verwirrt, welches Element "ausgewählt" ist.

    
Matt Hamilton 15.11.2009, 23:35
quelle
1

Sie können das Stehlen von Scroll-Ereignissen deaktivieren, indem Sie scroll-Ereignisse in XAML abfangen:

%Vor%

und im Code hinterher erneut veröffentlichen:

%Vor%

Die Lösung ist genau für ListBox, sie hat mir mit ListView geholfen.

Ich habe diese Lösung hier gefunden:

Ссылка

    
tequilacat 30.12.2017 16:26
quelle
-1

Tut mir leid, dass ich so einen alten Post aufgeweckt habe. Tatsächlich können Sie den ScrollViewer mithilfe der angehängten Eigenschaft von ScrollViewer deaktivieren.

%Vor%     
Jai 16.08.2016 03:44
quelle
-2

Du kannst das benutzen! Kein Rad gestohlen.

%Vor%     
Ricardo Oliveira 24.11.2017 21:38
quelle

Tags und Links