如何在WP7中放大和缩小图像?

我已经制作了一个显示图像的应用程序。现在我想实现放大和缩小function(通过使用两个指尖),如本机Windows手机照片查看器应用程序。任何想法如何继续。

提前致谢。

也许最方便的方法是包括Silverlight for Windows Phone Toolkit 。 这包含一个GestureService ,可以帮助捏合和旋转触摸手势。 您可以将它应用于这样的图像: –

          

然后在代码隐藏: –

  private void OnPinchStarted(object sender, PinchStartedGestureEventArgs e) { initialAngle = transform.Rotation; initialScale = transform.ScaleX; } private void OnPinchDelta(object sender, PinchGestureEventArgs e) { transform.Rotation = initialAngle + e.TotalAngleDelta; transform.ScaleX = initialScale * e.DistanceRatio; transform.ScaleY = initialScale * e.DistanceRatio; } 

查看Laurent Bugnion的多点触控样本 – http://multitouch.codeplex.com/

如果您想要支持多点触控的简单图像查看器,我建议您使用WebBrowser控件来显示图像。

它默认支持多点触控缩放和平滑滚动。 但您必须将文件从项目文件夹复制到隔离存储。 这就是我的表现:

    

 IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication(); // if image file does not exist in isolated storage, copy it to there~! if (!isf.FileExists(filename)) { StreamResourceInfo sr = Application.GetResourceStream(new Uri(filename, UriKind.Relative)); using (BinaryReader br = new BinaryReader(sr.Stream)) { byte[] data = br.ReadBytes((int)sr.Stream.Length); using (BinaryWriter bw = new BinaryWriter(isf.OpenFile(filename, FileMode.OpenOrCreate))) { bw.Write(data); bw.Close(); } br.Close(); } } Dispatcher.BeginInvoke(() => { MyWebBrowserControl.Navigate(new Uri(filename, UriKind.Relative)); }); 

※您必须将图像文件的构建操作设置为内容