本ページは広告が含まれています。気になる広告をクリック頂けますと、サーバ運営費になります(^^
Wpfにsliderをつけてリストをスクロールさせたい時の話。
垂直方向・水平方向に動かしたい時のポイントはここ!!
こちらが垂直方向に動かしたい時
scrollProvider.SetScrollPercent(
// 水平スクロールは今の位置
scrollProvider.HorizontalScrollPercent,
// スクロール位置を割合で指定する
scrollpoint);
こちらが水平方向に動かしたい時
scrollProvider.SetScrollPercent(
// スクロール位置を割合で指定する
scrollpoint,
// 垂直スクロールは今の位置
scrollProvider.VerticalScrollPercent);
以下、コード
private void slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs e)
{
listbox.SelectedIndex = (int)slider.Value;
double scrollpoint = slider.Value / listbox.Items.Count * 100;
try
{
// ListBoxからAutomationPeerを取得
var peer = ItemsControlAutomationPeer.CreatePeerForElement(this.listbox);
// GetPatternでIScrollProviderを取得
var scrollProvider = peer.GetPattern(PatternInterface.Scroll) as IScrollProvider;
// パーセントで位置を指定してスクロール
scrollProvider.SetScrollPercent(
// スクロール位置を割合で指定する
scrollpoint,
// 垂直スクロールは今の位置
scrollProvider.VerticalScrollPercent);
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
