内部缩放内部列表框不能在Windows Phone 8.1中工作

时间:2015-09-23 11:24:44

标签: c# listbox windows-phone-8.1 winrt-xaml pinchzoom

我有一个显示图像的列表框,需要对图像进行缩放缩放。我使用ScrollViewer来实现捏缩放。

所以我的Listbox数据模板看起来就是这样。

<Border BorderBrush="Transparent"
        BorderThickness="1"
        Background="{StaticResource WhiteBrush}"
        Margin="0">
    <Grid VerticalAlignment="Top"
          Background="Transparent"
          Holding="Grid_Holding"
          Margin="8">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="150"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <Border BorderBrush="{StaticResource RedBrush}"
                BorderThickness="1"
                CornerRadius="20"
                Width="150"
                Height="170"
                Grid.Column="0">
            <ScrollViewer VerticalScrollBarVisibility="Hidden"
                          HorizontalScrollBarVisibility="Hidden"
                          ScrollViewer.BringIntoViewOnFocusChange="True"
                          ZoomMode="Enabled"
                          MinZoomFactor="0.8"
                          MaxZoomFactor="20">
                <Image Stretch="Uniform"
                       Width="150"
                       Height="170">
                    <Image.Source>
                        <BitmapImage UriSource="{Binding MainImage}"
                                     DecodePixelWidth="400"/>
                    </Image.Source>
                </Image>
            </ScrollViewer>
        </Border>
        <StackPanel Grid.Column="1"
                    Margin="15 0 0 0"
                    VerticalAlignment="Center">
            <TextBlock Text="{Binding Title}"
                       Style="{StaticResource SavedImageHeadingTextBlockStyle}" />
        </StackPanel>
    </Grid>
</Border>

问题是当我在ListBox Pinch之外使用相同的代码时缩放效果很好。但在ListBox内部,Pinchzoom不起作用。

任何帮助都会受到谴责。提前谢谢。

1 个答案:

答案 0 :(得分:2)

这里的问题是你可能不应该尝试这样做。如果你让它工作,你最终会得到一个非常令人沮丧的UI,你的ListView可能无法滚动,这取决于内部ScrollViewer是否在手指下(和吞咽触摸)。

您的方案中可能有效或无效的方法是使用FlipView(而不是ListView)。 FlipView很好地处理了ItemTemplate中的ScrollViewer,你最终会为用户带来更好的体验。