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

Vis*_*hal 1 windows-phone-8

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

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

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

Ala*_*oud 5

下载windows phone工具包并使用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>
Run Code Online (Sandbox Code Playgroud)

代码背后:

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;
}
Run Code Online (Sandbox Code Playgroud)