c# – Windows Phone 7中的Zoomable图像

前端之家收集整理的这篇文章主要介绍了c# – Windows Phone 7中的Zoomable图像前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试在我的 Windows Phone 7应用程序中制作可缩放的图像. (下面的代码)然而它起作用,图像剂量显示.有人可以把我放在正确的轨道上,这是正确的控制使用吗?如果是那么我做错了什么?
  1. <controls:PivotItem Name="Header" Header="item1">
  2. <Grid>
  3. <MultiScaleImage Name="mainImage" />
  4. </Grid>
  5. </controls:PivotItem>
  6.  
  7. var imageurl = loginxml.Descendants("response").Elements("submissions").Elements("submission").Elements("file_url_screen").First().Value;
  8. //imageurl = https://inkbunny.net///files/screen/165/165693_CobaltHusky_random_anatomy_doodles.png
  9. Header.Header = loginxml.Descendants("response").Elements("submissions").Elements("submission").Elements("title").First().Value;
  10. DeepZoomImageTileSource img = new DeepZoomImageTileSource(new Uri(imageurl));
  11. mainImage.Source = img;

编辑读取MultiScaleImage上的msdn,它不是要使用的控件.它需要一个特定的图像源(不是位图/ jpg)

解决方法

DeepZoomImageTileSource的URL不是图像URL,而是列出用于深度缩放图块的图像的XML文件的URL.

我使用silverlight工具包实现了如下简单的可缩放图像:

  1. <Image Name="MainImage" RenderTransformOrigin="0.5,0.5" CacheMode="BitmapCache">
  2. <Image.RenderTransform>
  3. <CompositeTransform x:Name="transform" />
  4. </Image.RenderTransform>
  5. <toolkit:GestureService.GestureListener>
  6. <toolkit:GestureListener PinchStarted="OnPinchStarted" PinchDelta="OnPinchDelta" />
  7. </toolkit:GestureService.GestureListener>
  8. </Image>

并在代码中:

  1. MainImage.Source = new BitmapImage(new Uri(url));

然后为您的角度和缩放声明两个变量:

  1. double initialAngle;
  2. double initialScale;

然后处理手势事件:

  1. private void OnPinchStarted(object sender,PinchStartedGestureEventArgs e)
  2. {
  3. initialAngle = transform.Rotation;
  4. initialScale = transform.ScaleX;
  5. }
  6.  
  7. private void OnPinchDelta(object sender,PinchGestureEventArgs e)
  8. {
  9. //transform.Rotation = initialAngle + e.TotalAngleDelta;
  10. transform.ScaleX = initialScale * e.DistanceRatio;
  11. transform.ScaleY = initialScale * e.DistanceRatio;
  12. }

如果要处理旋转图像,请取消注释旋转线.

山姆

猜你在找的C#相关文章