在Windows Phone 8上创建Zoomable图像对象

时间:2013-05-09 18:30:35

标签: windows-phone-8

我正在为Windows Phone 8开发一个与图像相关的应用程序。完成所需的图像处理后,我当前在“图像”工具箱项目中显示输出,这似乎对我有用。 这里的编码是在C#+ XAML中完成的。

现在我想改进UI并使输出图像可缩放(使用捏缩放)。我想知道如何创建这样一个可以缩放的UI元素。

我知道这可能是许多应用开发者的常见要求。但我一直无法找到相同的参考资料。

1 个答案:

答案 0 :(得分:5)

下载windows phone toolkit并使用GestureService.GestureListener

的Xaml:

...
xmlns:tk="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
...

<Image Source="myImage.jpg" RenderTransformOrigin="0.5, 0.5" CacheMode="BitmapCache">
    <Image.RenderTransform>
        <CompositeTransform x:Name="transform" />
    </Image.RenderTransform>
    <tk:GestureService.GestureListener>
        <tk:GestureListener PinchStarted="OnPinchStarted" PinchDelta="OnPinchDelta" />
    </tk:GestureService.GestureListener>
</Image>

代码背后:

double initialScale = 0;

private void OnPinchStarted(object sender, PinchStartedGestureEventArgs e) {
  initialScale = transform.ScaleX;
}

private void OnPinchDelta(object sender, PinchGestureEventArgs e) {
  transform.ScaleX = initialScale * e.DistanceRatio;
  transform.ScaleY = initialScale * e.DistanceRatio;
}