本文和大家重点学习一下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设计窗口加入以下语句:
- <MultiScaleImagex:NameMultiScaleImagex:Name="msi"Width="486"Height="652"VerticalAlignment="Top"HorizontalAlignment="Left"Margin="-6,0,0,0"/>
在Phone7中只能用MultiScaleImage来展示DeepZoom图集。
三.将Windows Phone开发中DeepZoomComposer生成的图集加入到工程中。
四.加入如下代码,以显示图集:
- this.msi.ImageOpenSucceeded+=newRoutedEventHandler(msi_ImageOpenSucceeded);
- voidmsi_ImageOpenSucceeded(objectsender,RoutedEventArgse)
- {
- Pointpoint=this.msi.ViewportOrigin;
- msi.ViewportWidth=1;
- msi.ViewportOrigin=newPoint(0,-0.3);
- }
- this.msi.Source=newDeepZoomImageTileSource(newUri("Assets/dzc_output.xml",UriKind.Relative));
五.要让图集移动,缩放,还需要加入MouseMove,LButtonDown,LbuttonUp的响应。
- privatevoidZoom(doublezoomnew,Pointp)
- {
- if(zoomnew<0.5)
- zoomnew=0.5;
- msi.ZoomAboutLogicalPoint(zoomnew/zoom,p.X,p.Y);
- zoom=zoomnew;
- }
好了,运行一下吧,看看是不很有趣!看看效果吧。