實(shí)例解析Windows Phone開(kāi)發(fā)中DeepZoom功能
本文和大家重點(diǎn)學(xué)習(xí)一下Windows Phone開(kāi)發(fā)中DeepZoom用法,DeepZoom是silverlight的特色功能之一,也可以說(shuō)這個(gè)功能現(xiàn)在應(yīng)該算是phone7Ui的主要功能了,它是如何使用的呢,請(qǐng)看本文詳細(xì)介紹。
Windows Phone開(kāi)發(fā)中DeepZoom用法解析
DeepZoom是silverlight的特色功能之一,也同樣被加到了windowsphone7中來(lái)。這個(gè)功能現(xiàn)在應(yīng)該算是phone7Ui的主要功能了吧。因?yàn)閜hone7的很多Ui就是DeepZoom開(kāi)發(fā)的,另外在MIX10大會(huì)有展出的漫畫(huà)閱讀軟件也是由DeepZoom開(kāi)發(fā)的,由此也可以看的出這個(gè)功能在phone7上的重要性。
一.要開(kāi)發(fā)DeepZoom首先需要在Windows Phone開(kāi)發(fā)中使用DeepZoomComposer這個(gè)在expression下的工具來(lái)生成deepzoom圖集。
二.新建windowsphoneapplication,在xaml設(shè)計(jì)窗口加入以下語(yǔ)句:
- <MultiScaleImagex:NameMultiScaleImagex:Name="msi"Width="486"Height="652"VerticalAlignment="Top"HorizontalAlignment="Left"Margin="-6,0,0,0"/>
在Phone7中只能用MultiScaleImage來(lái)展示DeepZoom圖集。
三.將Windows Phone開(kāi)發(fā)中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));
五.要讓圖集移動(dòng),縮放,還需要加入MouseMove,LButtonDown,LbuttonUp的響應(yīng)。
- privatevoidZoom(doublezoomnew,Pointp)
- {
- if(zoomnew<0.5)
- zoomnew=0.5;
- msi.ZoomAboutLogicalPoint(zoomnew/zoom,p.X,p.Y);
- zoom=zoomnew;
- }
好了,運(yùn)行一下吧,看看是不很有趣!看看效果吧。