virtualizingstackpanel

___ answer13597691 ___

Ich habe versucht, ein ItemsControl mit einem VirtualizingStackPanel zu bekommen, um eine Zeit lang zu einem Element zu blättern, und habe immer wieder die Antwort "Benutze eine ListBox" gefunden. Ich wollte nicht, also habe ich einen Weg gefunden, es zu tun. Zuerst müssen Sie eine Kontrollschablone für Ihr ItemsControl einrichten, die einen ScrollViewer enthält (den Sie wahrscheinlich bereits haben, wenn Sie ein Element-Steuerelement verwenden). Meine Basisvorlage sieht folgendermaßen aus (in einem praktischen Stil für das ItemsControl enthalten)

%Vor%

Also habe ich im Grunde einen Rahmen mit einem Scroll-Viewer, der meinen Inhalt enthält.
Mein ItemsControl ist definiert mit:

%Vor%

Ok, jetzt zum Spaß. Ich habe eine Erweiterungsmethode erstellt, die an jedes ItemsControl angehängt wird, um es zum gewünschten Element zu scrollen:

%Vor%

Wenn Sie also die Erweiterungsmethode verwenden, verwenden Sie sie genauso wie die Begleitmethode von ListBox:

%Vor%

Funktioniert gut!

Beachten Sie, dass Sie auch sv.ScrollToEnd () und die anderen üblichen Scrollmethoden aufrufen können, um Ihre Elemente zu umgehen.

    
___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ answer29107409 ___

Ich weiß, dass ich ziemlich spät auf der Party bin, aber hoffentlich hilft das einem anderen, der nach der Lösung sucht ...

%Vor%

... und mein XAML ist so eingerichtet ...

%Vor%     
___ tag123wpf ___ Windows Presentation Foundation oder WPF ist ein Subsystem zum Rendern von Benutzeroberflächen in Windows-basierten Anwendungen. ___ tag123itemscontrol ___ Stellt ein Steuerelement dar, mit dem eine Sammlung von Elementen dargestellt werden kann. ___ tag123Virtualisierung von Stackpanel ___ Ordnet und virtualisiert Inhalte in einer einzelnen Zeile, die entweder horizontal oder vertikal ausgerichtet ist. ___ qstnhdr ___ Scrollen zu einem Element eines virtualisierenden ItemsControls ___ answer12125602 ___

Wenn ich im .NET-Quellcode herumstokele, empfehle ich Ihnen die Verwendung von %code% und dessen %code% Methode. Die Implementierung dieser Methode beruht auf einigen %code% -Methoden wie %code% , die die Erstellung des Elements in diesem Index erzwingen und zu diesem scrollen. Die Tatsache, dass viele dieser Mechanismen intern sind, bedeutet, dass, wenn Sie versuchen, dies auf eigene Faust zu tun Sie eine schlimme Zeit haben werden.

(Um die Auswahl unsichtbar zu machen, können Sie die %code% erneut eingeben)

    
___ qstntxt ___

Ich habe ein %code% , das seine Elemente in %code% anzeigt und virtualisiert. Ich versuche, dieses %code% zu einem (offscreen, also virtualisierten) Element zu scrollen, das es enthält. Da das Element jedoch virtualisiert ist, existiert es nicht wirklich auf dem Bildschirm und hat keine Position (IIUC).

Ich habe %code% für das untergeordnete Element ausprobiert, aber es wird nicht in die Ansicht gerollt. Ich habe auch versucht, es manuell mit %code% , %code% und %code% , aber %code% kehrt nie zurück (ich denke auch wegen der Virtualisierung, weil es keine Position hat, aber ich habe keinen Beweis dafür) und Code, nachdem es nie ausgeführt wird.

Ist es möglich, zu einem Objekt mit einem virtualisierten %code% zu blättern? Wenn ja, wie?

    
___
3
Antworten

Scrollen zu einem Element eines virtualisierenden ItemsControls

Ich habe ein ItemsControl , das seine Elemente in ScrollViewer anzeigt und virtualisiert. Ich versuche, dieses ScrollViewer zu einem (offscreen, also virtualisierten) Element zu scrollen, das es enthält. Da das Element jedoch virtualisie...
25.08.2012, 19:40