0

我有一个 WP8 XAML 项目,在一页上我有以下 XAML 结构:

    <Grid x:Name="LayoutRoot" Background="{StaticResource PhoneBackgroundBrush}">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>

    <StackPanel x:Name="TitlePanel"
                Grid.Row="0"
                Margin="12,17,0,17">
        <TextBlock Text="{Binding Article.Title}"
                   Style="{StaticResource PhoneTextNormalStyle}"
                   Margin="12,0" />
        <TextBlock Text="{Binding Article.LastUpdateDate}"
                   Style="{StaticResource PhoneTextNormalStyle}"
                   Margin="12,0" />
    </StackPanel>

    <ScrollViewer Grid.Row="1" x:Name="ScrollViewer">
        <StackPanel x:Name="ContentPanel" />
    </ScrollViewer>

</Grid>

StackPanel 用于显示不同的内容。Letzt 说一些图像,一个网络浏览器控件和更多图像。

我的 Webbrowser 控件的高度适合内容高度。所以我不想在 Webbrowser 控件内滚动。我按照这篇文章来做到这一点: http://www.scottlogic.com/blog/2011/11/17/suppressing-zoom-and-scroll-interactions-in-the-windows-phone-7-browser-control。 html

所以我检查滚动事件并忽略它:

        private void Border_ManipulationDelta(object sender,
                                          ManipulationDeltaEventArgs e)
    {
        // suppress zoom
        if (e.DeltaManipulation.Scale.X != 0.0 ||
            e.DeltaManipulation.Scale.Y != 0.0)
            e.Handled = true;

        // optionally suppress scrolling
        if (ScrollDisabled)
        {
            if (e.DeltaManipulation.Translation.X != 0.0 ||
              e.DeltaManipulation.Translation.Y != 0.0)
            {
                e.Handled = true;
            }
        }
    }

到目前为止这工作正常,但如果焦点在我的 webbrowser 控件上并且我尝试滚动,webbrowser 不会滚动,但我想滚动父 scrollviewer。

是否有可能将该事件推送到滚动查看器。

或者是否有另一种可能只是禁用我的控件中的滚动,但总是滚动我的滚动查看器?

此致,

麦克风。

4

0 回答 0