Ответ 1
Это происходит потому, что прокрутка обрабатывается потоком композитора. Вы можете заставить его обрабатывать ввод в потоке пользовательского интерфейса, установив ManipulationMode
вашего ScrollViewer
на ManipulationMode.System
.
У меня есть следующий код XAML:
<Grid ManipulationDelta="Grid_ManipulationDelta" ManipulationMode="TranslateX" Margin="10,134,0,0" HorizontalAlignment="Left" Width="203" Height="120" VerticalAlignment="Top">
<ScrollViewer HorizontalScrollMode="Disabled">
<StackPanel>
<TextBlock Text="Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla " Width="182" TextWrapping="Wrap"/>
<TextBlock Text="Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla " Width="182" TextWrapping="Wrap"/>
<TextBlock Text="Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla " Width="182" TextWrapping="Wrap"/>
<TextBlock Text="Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla " Width="182" TextWrapping="Wrap"/>
<TextBlock Text="Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla " Width="182" TextWrapping="Wrap"/>
</StackPanel>
</ScrollViewer>
</Grid>
Мне нужен просмотр прокрутки только для вертикальной прокрутки, и мне нужно захватить TranslateX внутри события Grid_ManipulationDela.
Кажется, что ScrollViewer подавляет все события манипуляции от родителя.
Как я могу распространять (привязывать) TranslateX от средства просмотра прокрутки к gird в моем случае?
NB: IsHorizontalScrollChainingEnabled="False|True"
не разрешает проблему.
Спасибо за ваше время.
Это происходит потому, что прокрутка обрабатывается потоком композитора. Вы можете заставить его обрабатывать ввод в потоке пользовательского интерфейса, установив ManipulationMode
вашего ScrollViewer
на ManipulationMode.System
.