垂直スクロールが表示されるように多くのアイテムを含むリストボックスがあるとしましょうが、スクロールバーを非表示にしました
ScrollViewer.VerticalScrollBarVisibility="Hidden"
下にスクロールするボタンを追加する方法はありますか? iv追加しようとしました
Command="ScrollBar.LineDownCommand"
ボタンに移動しましたが、効果はありませんでした。
コマンド ハンドラーの検索を開始する場所を WPF に指示する必要があります。何も言わずに から検索を開始し、Button
を処理するものを見つけられませんLineDownCommand
。残念ながら、はテンプレートの一部として の中にあるため、 に設定してListBox
も十分ではありません。そのため、WPF はまだそれを見つけられません。ScrollViewer
ListBox
s のいずれかに設定するListBoxItem
のは面倒ですが、機能します。
<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>
これを行うためのより良い方法は、 を再テンプレート化してテンプレート内にListBox
貼り付けるか、コード ビハインドで を接続することです。Button
CommandTarget
ScrollViewer のスクロールを手動で制御したいアプリがありました。基本的に、ScrollViewer への参照を取得し、ScrollToHorizontalOffset() メソッドを使用してスクロールを制御しました。以下は、私が使用したプロセスを説明するブログ投稿です。
http://www.developingfor.net/wpf/fun-with-the-wpf-scrollviewer.html
http://www.developingfor.net/wpf/more-fun-with-wpf-scrollviewer.html