我有一个Windows Phone应用程序,其中包含由操作事件启动的自定义UI操作。不幸的是, ScrollViewer 元素阻止了所有这些事件。
示例XAML:
<Grid Width="200" ManipulationMode="TranslateX" ManipulationDelta="Grid_ManipulationDelta" ManipulationCompleted="Grid_ManipulationCompleted" Background="Gray">
<ScrollViewer ManipulationMode="TranslateY" HorizontalScrollMode="Disabled" Height="200">
<Grid Height="400" Background="CadetBlue" />
</ScrollViewer>
</Grid>
C#代码隐藏:
private void Grid_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e) {
(sender as Grid).Background = new SolidColorBrush(Colors.Silver);
}
private void Grid_ManipulationCompleted(object sender, ManipulationCompletedRoutedEventArgs e) {
(sender as Grid).Background = new SolidColorBrush(Colors.Gray);
}
该示例包含一个灰色矩形和一个蓝色方块。灰色矩形是我想要操作的元素。如果它被操纵,它会将其颜色更改为银色。蓝色方块是 ScrollViewer ,它阻止水平操作,尽管 HorizontalScrollMode 被禁用。
如何强制 ScrollViewer 忽略水平操作?