0

比較的少数のアイテムが取り込まれたリストボックスがあります。アイテムが画面に収まらないため、リストボックスの右側に垂直スクロールバーが自動的に表示されます。スクロールバーはマウス ホイールに反応しますが、リストボックスの項目は反応しません。アイテムをマウス ホイールに反応させるにはどうすればよいですか?

前もって感謝します!

――ナチョ

4

2 に答える 2

0

これにより、WPF ウィンドウにあるリスト ボックスの項目が選択されます。マウス ホイールを回すと、ListBox 項目が選択されます。ListBox はこの前にフォーカスを取得し、最初の項目は既に選択されています。

クラスファイルに次のように記述します。

private void ListBox1_MouseWheel(object sender, MouseWheelEventArgs e)
{
    int cap = (ListBox1.Items.Count) - 1;
    int place = ListBox1.SelectedIndex;
    int incre = e.Delta/120;
    place += incre;
    if (place > cap)
    {
        place = 0;
    }
    if (place < 0)
    {
        place = cap;
    }
    ListBox1.SelectedIndex = place;
    ListBox1.ScrollIntoView(itemNoresult1.SelectedItem);
}

リスト ボックスの XAML プロパティに次のように入力します。PreviewMouseWheel="ListBox1_MouseWheel"

于 2014-01-18T12:24:19.303 に答える
0

ListBox がマウスホイール イベントに応答しないようにする場合は、ListBox 要素のコンテキスト内でマウスホイール イベントを処理します。

そのハンドラーで、含まれているリストボックスへのイベントのバブリングを停止する e.Handled=true を設定できます。

そのステートメントを ListBoxItem 内の包含要素に入れることもできます。

于 2013-11-11T21:41:20.893 に答える