3

わかりました、次の問題があります。

オーバーフローした ListBox を上下にスクロールしたいと思います。

ListBox から継承するカスタム コントロールでプログラムで実行したいと思います。などを見てテストしましたscrollIntoView。ただし、マウスのホイールを使用する場合と同様のスクロールが必要です。

マウスをまったく関与させたくありません (私は Kinect 用に開発しています。カーソルが 2 つあるため、Mouse イベント引数を使用したくありません)。

Google検索はあまりうまくいきませんでした.scrollIntoViewを使用してコードビハインドをスクロールする方法、またはスクロールバーなどを配置する方法について、たくさんのスレッドを読みました。

4

1 に答える 1

3

これには次の 2 つの手順が必要になると思います。

  1. listBox テンプレート内の scrollViewer コントロールを見つけます
  2. その scrollViewer で実際のスクロールを実行します

最初のステップの実装については、こちらをご覧ください。そこから抽出されたコードスニペットは次のとおりです。

this.Loaded += MainWindow_Loaded;

void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
    var scrollViewer = listbox.Template.FindName("Scroller", listbox);
}

2 番目のステップでは、ここからのLineDownいずれかの方法を使用する必要がありますPageDown

PS: VS をインストールしていないため、このアプローチはまったくテストしていません。必要なコードをここに自由に追加してください。

于 2012-06-21T12:00:21.993 に答える