由ScrollViewer抑制的ManipulationDelta事件

时间:2014-10-06 15:12:06

标签: c# xaml windows-runtime

我有一个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 ,它阻止水平操作,尽管 Horizo​​ntalScrollMode 被禁用。

如何强制 ScrollViewer 忽略水平操作?

0 个答案:

没有答案