WPF ScrollViewerでマウスホイールの動作をカスタマイズする方法


  1. PreviewMouseWheelイベントを使用する方法: ScrollViewerコントロール上でPreviewMouseWheelイベントをハンドルすることで、マウスホイールの動作をカスタマイズできます。以下のコード例では、マウスホイールでスクロールする際にスクロール量を変更しています。
private void ScrollViewer_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
{
    ScrollViewer scrollViewer = (ScrollViewer)sender;
    // スクロール量を変更するための処理
    scrollViewer.ScrollToVerticalOffset(scrollViewer.VerticalOffset - e.Delta);
    e.Handled = true;
}

XAMLでScrollViewerコントロールを定義し、PreviewMouseWheelイベントを上記のイベントハンドラに関連付けます。

<ScrollViewer PreviewMouseWheel="ScrollViewer_PreviewMouseWheel">
    <!-- 内容 -->
</ScrollViewer>
  1. MouseWheelイベントを使用する方法: PreviewMouseWheelイベントではなく、MouseWheelイベントを使用することもできます。以下のコード例では、MouseWheelイベントをハンドルしてスクロール量を変更しています。
private void ScrollViewer_MouseWheel(object sender, MouseWheelEventArgs e)
{
    ScrollViewer scrollViewer = (ScrollViewer)sender;
    // スクロール量を変更するための処理
    scrollViewer.ScrollToVerticalOffset(scrollViewer.VerticalOffset - e.Delta);
    e.Handled = true;
}

XAMLでScrollViewerコントロールを定義し、MouseWheelイベントを上記のイベントハンドラに関連付けます。

<ScrollViewer MouseWheel="ScrollViewer_MouseWheel">
    <!-- 内容 -->
</ScrollViewer>

これらの方法を使用することで、WPFのScrollViewerコントロールでマウスホイールの動作をカスタマイズすることができます。