Feedback

C# - ListBox ScrollViewer is on the bottom

Veröffentlicht von am 06.07.2015
(1 Bewertungen)
Diese Methode ermittelt wann der ScrollViewer am Ende einer ListBox ist.

Namespace:
System.Window.Media.Visual

XAML
<ListBox ScrollViewer.ScrollChanged="c_listBox_ScrollChanged"/>
GFU-Schulungen  [Anzeige]

VB.NET 2017/2015/2013 Komplett

Ziel des Seminars ist der flexible Umgang mit VB.NET, wie z.B. die damit verbundene eigenständige Entwicklung von Programmen oder das Verwenden von Datenbanken.

ASP.NET Core - Der Einstieg

In nur 3 Tagen lernen Sie, wie man mit ASP.NET Core und den Technologien MVC, Entity Framework, WebAPI und Razor professionelle Web-Anwendungs-Architekturen aufbaut. Diese Schulung ist der perfekte Einstieg, um datengetriebene und präsentations-orientierte Applikationen auf Basis der ASP.NET Core Plattform zu erstellen.

private void c_listBox_ScrollChanged(object sender, ScrollChangedEventArgs e)
        {
            ScrollViewer viewer = GetDescendantByType(BoxedListBox, typeof(ScrollViewer)) as ScrollViewer;

            if (viewer.VerticalOffset == viewer.ScrollableHeight)
            { }
        }

public Visual GetDescendantByType(Visual element, Type type)
        {
            if (element == null) return null;
            if (element.GetType() == type) return element;
            Visual foundElement = null;
            if (element is FrameworkElement)
            {
                (element as FrameworkElement).ApplyTemplate();
            }
            for (int i = 0; i < VisualTreeHelper.GetChildrenCount(element); i++)
            {
                Visual visual = VisualTreeHelper.GetChild(element, i) as Visual;
                foundElement = GetDescendantByType(visual, type);
                if (foundElement != null)
                    break;
            }
            return foundElement;
        }
Abgelegt unter ListBox, ScrollViewer, ScrollChanged, bottom, wpf.

3 Kommentare zum Snippet

Koopakiller schrieb am 06.07.2015:
Warum so kompliziert? Ich habe der Beschreibung nach an das da gedacht:
if (scrollViewer.VerticalOffset == scrollViewer.ScrollableHeight)
{
MessageBox.Show("Am Ende...");
}
Stefan Kern schrieb am 08.07.2015:
Ich auch... was macht das snippet besser?
Enrico Wüstenberg schrieb am 12.07.2015:
Ich habe es für ein Custom Control benötigt.
Zudem ist die "Abkürzung" auch im Snippet drin. Kann jeder selber entscheiden.
 

Logge dich ein, um hier zu kommentieren!