WPF MVVM 在滚动条视图(ScrollViewer)下,在子控件中如何使用鼠标滚轮控制父滚动视图的垂直滚动条

这篇博客探讨了在WPF MVVM模式下,如何处理ScrollViewer的鼠标滚轮事件,使得在子控件中滚动时能控制父滚动视图的垂直滚动条。当子控件也有自己的滚动条时,如何避免同时滚动两个滚动条的问题。文章提供了一段C#代码示例,展示了如何在子控件的Loaded事件中添加事件处理,并在鼠标滚轮事件中调整父滚动视图的滚动位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);
}

此方法有个小问题,子控件如何也是自带滚动条并且子控件和父控件同时出现垂直滚动条的时候,鼠标滚轮会同时控制子控件和父控件的滚动条。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值