Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 具有奇怪平移行为的ScrollViewer中的光学变焦_C#_Windows Store Apps_Windows 8.1 - Fatal编程技术网

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

C# 具有奇怪平移行为的ScrollViewer中的光学变焦,c#,windows-store-apps,windows-8.1,C#,Windows Store Apps,Windows 8.1,我正在构建一个图片查看应用程序。在其中,我有一个FlipView,它显示了各个图像,您可以对每个图像进行光学缩放。这种体验与您在windows 8的默认照片应用程序(使用html构建)中看到的FlipView/Optical zoom非常相似 我正在使用ScrollViewer进行光学变焦。光学变焦似乎工作良好,除了有一个奇怪的平移行为。在图像返回到原始位置之前,您仍然可以使用一根手指平移图像 照片应用程序不允许这种情况,我正在尝试实现类似的行为。是否有某种方法可以禁用使用内置的ScrollVi

我正在构建一个图片查看应用程序。在其中,我有一个FlipView,它显示了各个图像,您可以对每个图像进行光学缩放。这种体验与您在windows 8的默认照片应用程序(使用html构建)中看到的FlipView/Optical zoom非常相似

我正在使用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


您已将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>

完全正确!此外,我还向UserControl添加了的内容,以便能够访问scrollViewer1,并在flipView1_SelectionChanged事件中使用FindName方法访问它。谢谢