1. 程式人生 > 其它 >wpf 中使用ScrollViewer 時滑鼠滑輪按照內容進行滾動

wpf 中使用ScrollViewer 時滑鼠滑輪按照內容進行滾動

xaml:

 <ScrollViewer x:Name="sv"   CanContentScroll="False" PreviewMouseWheel="ScrollViewer_PreviewMouseWheel"   >
</ScrollViewer>

後臺:

 private void ScrollViewer_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
        {
            ScrollViewer viewer = sv;  //sv 為Scrollview的名字,在Xaml檔案中定義。
            if (viewer == null) return;
            double num = Math.Abs((int)(e.Delta / 2));
            double offset = 0.0;
            if (e.Delta > 0)
            {
                offset = Math.Max((double)0.0, (double)(viewer.VerticalOffset - num));//viewer.VerticalOffset獲取包含滾動內容的垂直偏移量的值。
            }
            else
            {
                offset = Math.Min(viewer.ScrollableHeight, viewer.VerticalOffset + num);
            }
            if (offset != viewer.VerticalOffset)
            {
                viewer.ScrollToVerticalOffset(offset);//將 ScrollViewer 內的內容滾動到指定的垂直偏移量位置。
                e.Handled = true;
            } 

        }