问题描述:在WPF中,页面放置了ScrollViewer,ScrollViewer里有DataGrid,出现当鼠标置于DataGrid上方时,使用鼠标滚轮无法上下移动页面,鼠标置于DataGrid外侧时可以。
解决:
1.在DataGrid中添加PreviewMouseWheel事件,并将事件的Handled属性设置为false,以便将滚动事件传递给ScrollViewer。示例代码如下:
<DataGrid PreviewMouseWheel="DataGrid_PreviewMouseWheel">
<!-- DataGrid的其他设置 -->
</DataGrid>
private void DataGrid_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
{
e.Handled = false;
}
2.在ScrollViewer中添加PreviewMouseWheel事件,并使用ScrollViewer.ScrollToVerticalOffset方法手动滚动。示例代码如下:
<ScrollViewer PreviewMouseWheel="ScrollViewer_PreviewMouseWheel">
<DataGrid>
<!-- DataGrid的其他设置 -->
</DataGrid>
</ScrollViewer>
private void ScrollViewer_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
{
e.Handled = true;
var scrollViewer = (ScrollViewer)sender;
scrollViewer.ScrollToVerticalOffset(scrollViewer.VerticalOffset - e.Delta);
}
来源:C知道AI
本文讲述了在WPF中,如何解决DataGrid内嵌于ScrollViewer时鼠标滚轮无法正常滚动的问题。方法是为DataGrid添加PreviewMouseWheel事件处理,并将ScrollViewer的事件处理设为true,以便接收并处理滚轮事件。
4656

被折叠的 条评论
为什么被折叠?



