实例解析Windows Phone开发中DeepZoom功能


  本文标签:WindowsPhone开发

  本文和大家重点学习一下Windows Phone开发中DeepZoom用法,DeepZoom是silverlight的特色功能之一,也可以说这个功能现在应该算是phone7Ui的主要功能了,它是如何使用的呢,请看本文详细介绍  。

  Windows Phone开发中DeepZoom用法解析

  DeepZoom是silverlight的特色功能之一,也同样被加到了windowsphone7中来  。这个功能现在应该算是phone7Ui的主要功能了吧  。因为phone7的很多Ui就是DeepZoom开发的,另外在MIX10大会有展出的漫画阅读软件也是由DeepZoom开发的,由此也可以看的出这个功能在phone7上的重要性  。

  一.要开发DeepZoom首先需要在Windows Phone开发中使用DeepZoomComposer这个在expression下的工具来生成deepzoom图集  。

  

 

  二.新建windowsphoneapplication,在xaml设计窗口加入以下语句:

  1. <MultiScaleImagex:NameMultiScaleImagex:Name="msi"Width="486"Height="652"VerticalAlignment="Top"HorizontalAlignment="Left"Margin="-6,0,0,0"/> 
  2.  

  

  在Phone7中只能用MultiScaleImage来展示DeepZoom图集  。

  三.将Windows Phone开发中DeepZoomComposer生成的图集加入到工程中  。

  四.加入如下代码,以显示图集:

  1. this.msi.ImageOpenSucceeded+=newRoutedEventHandler(msi_ImageOpenSucceeded);  
  2. voidmsi_ImageOpenSucceeded(objectsender,RoutedEventArgse)  
  3. {  
  4. Pointpoint=this.msi.ViewportOrigin;  
  5. msi.ViewportWidth=1;  
  6. msi.ViewportOrigin=newPoint(0,-0.3);  
  7. }  
  8.  
  9. this.msi.Source=newDeepZoomImageTileSource(newUri("Assets/dzc_output.xml",UriKind.Relative));  
  10.  

  

  五.要让图集移动,缩放,还需要加入MouseMove,LButtonDown,LbuttonUp的响应  。

  1. privatevoidZoom(doublezoomnew,Pointp)  
  2. {  
  3. if(zoomnew<0.5)  
  4. zoomnew=0.5;  
  5.  
  6. msi.ZoomAboutLogicalPoint(zoomnew/zoom,p.X,p.Y);  
  7. zoom=zoomnew;  
  8. }  
  9.  

  好了,运行一下吧,看看是不很有趣!看看效果吧  。