WPF DataGrid单元格内有ComboBox,在ComboBox上滚动鼠标滚轮,DataGrid的垂直滚动条无效问题解决

直接上代码

        private void ComboBox_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
        {
            var comboBox = sender as System.Windows.Controls.ComboBox;
            if (comboBox.IsDropDownOpen)
                return;

            e.Handled = true;
            var scrollViewer = AmanVisualTreeHelper.GetElement<ScrollViewer>(DG_Data);
            if (scrollViewer != null)
            {
                if (e.Delta > 0) 
                {
                    scrollViewer.LineUp();
                }
                else
                {
                    scrollViewer.LineDown();
                }
            }
        }

        private void ComboBox_PreviewMouseWheel1(object sender, MouseWheelEventArgs e)
        {
            var comboBox = sender as System.Windows.Controls.ComboBox;
            if (comboBox.IsDropDownOpen)
                return;

            e.Handled = true;
            var scrollViewer = AmanVisualTreeHelper.GetElement<ScrollViewer>(DG_Data);
            if (scrollViewer != null)
            {
                scrollViewer.ScrollToVerticalOffset(scrollViewer.VerticalOffset - e.Delta);
            }
        }

 

posted @ 2025-07-07 10:31  苏秦与真相  阅读(25)  评论(0)    收藏  举报