Если вы в порядке с использованием code-behind, вы можете создать обработчик события для PreviewMouseWheel
события "child" ScollViewer
, а в обработчике события вы можете передать информацию MouseWheelEventArgs
в«parent» ScrollViewer
, чтобы вызвать собственное событие MouseWheel
.
Сначала в XAML произойдет пара незначительных изменений:
Дайте "parent" ScrollViewer
aимя, чтобы на него можно было ссылаться из выделенного кода:
<ScrollViewer x:Name="parentScrollViewer"
VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Disabled">
Создать обработчик события для PreviewMouseWheel
события «потомка» ScrollViewer
:
<ScrollViewer VerticalScrollBarVisibility="Disabled"
HorizontalScrollBarVisibility="Auto"
PreviewMouseWheel="ScrollViewer_PreviewMouseWheel">
Наконец,реализовать код в обработчике событий, чтобы вызвать «родительское» событие MouseWheel
:
private void ScrollViewer_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
{
var mouseWheelEventArgs = new MouseWheelEventArgs(e.MouseDevice, e.Timestamp, e.Delta);
mouseWheelEventArgs.RoutedEvent = ScrollViewer.MouseWheelEvent;
mouseWheelEventArgs.Source = sender;
this.parentScrollViewer.RaiseEvent(mouseWheelEventArgs);
}