Windows 8.1 Metro应用程序 - 捏合和缩放图像

pg9*_*g90 5 c# xaml windows-8 pinchzoom windows-8.1

有没有办法在Windows 8.1中实现捏合和缩放XAML内的图像控制,我正在尝试操纵delta事件.但是这个事件没有被解雇,我也尝试设置ManipulationMode ="All".

<Image x:Name="kn" ManipulationMode="All" ManipulationDelta="kn_ManipulationDelta" HorizontalAlignment="Center" VerticalAlignment="Center" Height="315" Width="360" RenderTransformOrigin="0.5, 0.5">
  <Image.RenderTransform>
  <CompositeTransform></CompositeTransform>
  </Image.RenderTransform>
</Image>
Run Code Online (Sandbox Code Playgroud)

并在cs文件中

private void kn_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
 UIElement element = sender as UIElement;
 CompositeTransform transform = element.RenderTransform as CompositeTransform;
 if (transform != null)
 {

 transform.ScaleX *= e.Delta.Scale;
 transform.ScaleY *= e.Delta.Scale;
 transform.Rotation += e.Delta.Scale / Math.PI;
 transform.TranslateX += e.Delta.Translation.X;
 transform.TranslateY += e.Delta.Translation.Y;
 }
}
Run Code Online (Sandbox Code Playgroud)

有什么我必须设置.或者我必须采取其他方式?

小智 15

您可以使用ScrollViewer控件包装图像,轻松实现此目的.

<ScrollViewer ZoomMode="Enabled">
    <Image ............ />
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)