ScrollViewer中的光学变焦具有奇怪的平移行为

时间:2015-04-02 07:14:57

标签: c# windows-store-apps windows-8.1

我正在构建一个图片查看应用程序。在其中我有一个显示单个图像的FlipView,您可以在其中光学缩放每个图像。这种体验非常类似于您在Windows 8(使用html构建)中的默认Photos应用程序中看到的FlipView /光学变焦。

我正在使用ScrollViewer进行光学变焦。除了奇怪的平移行为外,光学变焦似乎工作正常。在返回到原始位置之前,您仍然可以使用单个手指平移图像。

照片应用程序不允许这样做,我正试图实现类似的行为。有没有办法使用内置的ScrollViewer控件禁用平移图像?我仍然希望放大工作,但应禁用平移。我认为这应该可以使用操作事件而不是ScrollViewer来实现,但显然ScrollViewer会更简单。

<ScrollViewer x:Name="scrollViewer1" ZoomMode="Enabled" MaxZoomFactor="2.0" MinZoomFactor="1.0" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" HorizontalAlignment="Center">
        <FlipView x:Name="flipView1" Width="1140" SelectionChanged="flipView1_SelectionChanged">
            <FlipView.ItemTemplate>
                <DataTemplate>
                    <Grid>
                        <Image x:Name="CurrentImage" Source="{Binding}" DoubleTapped="CurrentImage_DoubleTapped">                                
                        </Image>
                    </Grid>
                </DataTemplate>
            </FlipView.ItemTemplate>
        </FlipView>
    </ScrollViewer

1 个答案:

答案 0 :(得分:0)

您已将FlipView添加到ScrollView,因为您必须将scrollview添加到flipview项目模板,并且图像必须位于scrollview内,您的xaml代码必须如下所示:

<FlipView x:Name="flipView1" Width="1140" SelectionChanged="flipView1_SelectionChanged">
            <FlipView.ItemTemplate>
                <DataTemplate>
                    <Grid>
                       <ScrollViewer x:Name="scrollViewer1" ZoomMode="Enabled" MaxZoomFactor="2.0" MinZoomFactor="1.0" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" HorizontalAlignment="Center">
                        <Image x:Name="CurrentImage" Source="{Binding}" DoubleTapped="CurrentImage_DoubleTapped">                                
                        </Image>
                      </ScrollViewer>
                    </Grid>
                </DataTemplate>
            </FlipView.ItemTemplate>
        </FlipView>