ScrollViewer 中的光学缩放具有奇怪的平移行为
Optical zoom in ScrollViewer having odd panning behavior
我正在构建一个图片查看应用程序。我在其中有一个显示单个图像的 FlipView,您可以在其中对每个图像进行光学缩放。这种体验与您在 windows 8(使用 html 构建)的默认照片应用中看到的 FlipView/Optical 缩放非常相似。
我正在使用 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>
我正在构建一个图片查看应用程序。我在其中有一个显示单个图像的 FlipView,您可以在其中对每个图像进行光学缩放。这种体验与您在 windows 8(使用 html 构建)的默认照片应用中看到的 FlipView/Optical 缩放非常相似。
我正在使用 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>