WPF Listbox nach unten scrollen
Frage
Lassen Sie uns sagen, ich habe ein Listenfeld mit vielen Elementen, so dass eine vertikale Scroll-up kommt, aber ich habe die Bildlaufleiste versteckt mit
ScrollViewer.VerticalScrollBarVisibility="Hidden"
Gibt es eine Möglichkeit ich eine Schaltfläche hinzufügen kann, die für mich nach unten scrollen würde? iv tryed hinzufügen
Command="ScrollBar.LineDownCommand"
auf eine Taste, aber das nur knapp sein Ziel hat keine Wirkung.
Lösung
Sie müssen WPF sagen, wo für den Befehl Handler zu suchen beginnen. Ohne zu sagen es, wird es beginnen, von den Button
suchen und nichts findet, dass der LineDownCommand
behandelt. Leider ist es auf den ListBox
Einstellung wird nicht ausreichen, weil die ScrollViewer
ist innen die ListBox
als Teil seiner Vorlage, so WPF wird es immer noch nicht finden.
es zu einem der ListBoxItem
s Einstellung ist geschmacklos, aber funktioniert:
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ListBox x:Name="_listBox" ScrollViewer.VerticalScrollBarVisibility="Hidden">
<ListBoxItem x:Name="_listBoxItem">One</ListBoxItem>
<ListBoxItem>Two</ListBoxItem>
<ListBoxItem>Three</ListBoxItem>
<ListBoxItem>One</ListBoxItem>
<ListBoxItem>Two</ListBoxItem>
<ListBoxItem>Three</ListBoxItem>
<ListBoxItem>One</ListBoxItem>
<ListBoxItem>Two</ListBoxItem>
<ListBoxItem>Three</ListBoxItem>
<ListBoxItem>One</ListBoxItem>
<ListBoxItem>Two</ListBoxItem>
<ListBoxItem>Three</ListBoxItem>
</ListBox>
<Button Grid.Row="1" Command="ScrollBar.LineDownCommand" CommandTarget="{Binding ElementName=_listBoxItem}">Scroll Down</Button>
</Grid>
</Window>
Eine bessere Möglichkeit, dies zu tun, die ListBox
entweder Wiedervorlage sein würde und kleben Sie die Button
in der Vorlage oder die CommandTarget
im Code-behind verkabeln.
Andere Tipps
hatte ich eine app, wo ich manuell wollte das Scrollen eines Scroll steuern. Im Grunde genommen habe ich einen Verweis auf die Scroll und verwenden dann die ScrollToHorizontalOffset () Methode das Scrollen zu steuern. Im Folgenden sind die Blog-Posts, wo ich den Prozess erklären ich verwendet:
http://www.developingfor.net/wpf /fun-with-the-wpf-scrollviewer.html
http://www.developingfor.net/wpf /more-fun-with-wpf-scrollviewer.html