本ページは広告が含まれています。気になる広告をクリック頂けますと、サーバ運営費になります(^^
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); } }