WPF MVVM 在滚动条视图(ScrollViewer)下,在子控件中如何使用鼠标滚轮控制父滚动视图的垂直滚动条
由于需要对控制的事件进行直接操作,所有需要将代码写在对应界面的.xaml.cs文件中
//滚动视图的Loaded事件
private void scrollViewer_Loaded(object sender, RoutedEventArgs e)
{
//ActiveItem为子控件的Name
ActiveItem.AddHandler(MouseWheelEvent, new RoutedEventHandler(MouseWheelV), true);
}
//scrollViewer 为滚动视图的Name
private void MouseWheelV(object sender, RoutedEventArgs e)
{
MouseWheelEventArgs eargs = (MouseWheelEventArgs)e;
double x = (double)eargs.Delta;
double y = scrollViewer.VerticalOffset;
scrollViewer.ScrollToVerticalOffset(y - x);
}
此方法有个小问题,子控件如何也是自带滚动条并且子控件和父控件同时出现垂直滚动条的时候,鼠标滚轮会同时控制子控件和父控件的滚动条。