WEB开发网      濠电姷鏁告繛鈧繛浣冲洤纾瑰┑鐘宠壘閻ょ偓銇勯幇鍫曟闁稿鍠愰妵鍕冀閵娧佲偓鎺楁⒒閸曨偄顏柡宀嬬畱铻e〒姘煎灡绗戦梻浣筋嚙濮橈箓顢氳濠€浣糕攽閻樿宸ュΔ鐘叉啞缁傚秹宕滆绾惧ジ寮堕崼娑樺缂佹宀搁弻鐔风暋閻楀牆娈楅梺璇″枓閺呯姴鐣疯ぐ鎺濇晝闁靛牆妫欓蹇旂節閻㈤潧浠﹂柛銊ョ埣楠炴劙骞橀鑲╋紱闂佽宕樼粔顔裤亹閹烘挸浜归梺缁樺灦閿曗晛螞閸曨垱鈷戦柟鑲╁仜婵″ジ鎮楀☉鎺撴珖缂侇喖顑呴鍏煎緞濡粯娅囬梻浣瑰缁诲倿寮绘繝鍥ㄦ櫇闁稿本绋撻崢鐢告煟鎼淬垻鈯曢柨姘舵煟韫囥儳绋荤紒缁樼箖缁绘繈宕橀妸褌绱濋梻浣筋嚃閸ㄤ即宕弶鎴犳殾闁绘梻鈷堥弫鍌炴煕閳锯偓閺呮瑧妲愬Ο琛℃斀闁绘劕妯婇崵鐔封攽椤旇棄鍔ら摶鐐烘煕閺囥劌澧柛娆忕箻閺屽秹宕崟顒€娅g紓浣插亾濠㈣泛顑囩粻楣冩煙鐎涙ḿ绠橀柨娑樼У椤ㄣ儵鎮欓鍕紙闂佽鍠栫紞濠傜暦閹偊妲诲┑鈩冨絻椤兘寮诲☉銏犖╅柕澶堝労閸斿绱撴担绋库偓鍝ョ矓瑜版帒鏋侀柟鍓х帛閺呮悂鏌ㄩ悤鍌涘 ---闂傚倸鍊烽悞锔锯偓绗涘厾娲煛閸涱厾顔嗛梺璺ㄥ櫐閹凤拷
开发学院图形图像Flash Silverlight 2 手把手(之一) Deep Zoom 阅读

Silverlight 2 手把手(之一) Deep Zoom

 2008-10-24 11:46:08 来源:WEB开发网 闂傚倸鍊风欢姘缚瑜嶈灋闁圭虎鍠栫粻顖炴煥閻曞倹瀚�闂傚倸鍊风粈渚€骞夐敓鐘插瀭闁汇垹鐏氬畷鏌ユ煙閹殿喖顣奸柛搴$У閵囧嫰骞掗幋婵冨亾閻㈢ǹ纾婚柟鐐灱濡插牊绻涢崱妤冃℃繛宀婁簽缁辨捇宕掑鎵佹瀸闂佺懓鍤栭幏锟�濠电姷鏁告慨顓㈠箯閸愵喖宸濇い鎾寸箘閹规洟姊绘笟鈧ḿ褍煤閵堝悿娲Ω閳轰胶鍔﹀銈嗗笂閼冲爼鍩婇弴銏$厪闁搞儮鏅涙禒褏绱掓潏鈺佷槐闁轰焦鎹囬弫鎾绘晸閿燂拷闂傚倸鍊风欢姘缚瑜嶈灋闁圭虎鍠栫粻顖炴煥閻曞倹瀚�  闂傚倸鍊烽懗鑸电仚缂備胶绮〃鍛村煝瀹ュ鍗抽柕蹇曞У閻庮剟姊虹紒妯哄妞ゆ劗鍘ч埥澶娢熼柨瀣偓濠氭⒑瑜版帒浜伴柛鎾寸☉閳绘柨顫濋懜纰樻嫼闂佸憡绋戦オ鏉戔枔閺冣偓缁绘稓浠﹂崒姘瀳闂佸磭绮幑鍥嵁鐎n亖鏀介柟閭﹀墯椤斿倹淇婇悙顏勨偓鏍ь潖婵犳艾鍌ㄧ憸蹇涘箟閹绢喗鏅搁柨鐕傛嫹
核心提示: 4. 添加 SDI文件集到 ClientBin 目录下5. 使用 <MultiScaleImage> 引用 info.bin<MultiScaleImage x:Name="DeepZoomCan" Source="[yourfolder]/

Silverlight 2 手把手(之一) Deep Zoom

4. 添加 SDI 文件集到 ClientBin 目录下

Silverlight 2 手把手(之一) Deep Zoom

5. 使用 <MultiScaleImage> 引用 info.bin

<MultiScaleImage x:Name="DeepZoomCan" Source="[yourfolder]/info.bin" Height="294" Width="456" Canvas.Left="68" Canvas.Top="51" />

在 Page.xaml 中使用 MultiScaleImage 标签引用 DZC 打包生成的编译文件 info.bin

6. 编译,预览

Silverlight 2 手把手(之一) Deep Zoom

7. 输入用户提示信息

Silverlight 2 手把手(之一) Deep Zoom

您可以在 Expression Blend 2.5 3月预览版中调整文字的位置和大小,您也可以使用 VS2008,使用 <TextBlock /> 标签,调整文字信息。

8. 添加鼠标键盘响应事件

在 Page.xaml.cs 中加入对鼠标和键盘的事件响应,代码如下:

  1: namespace DeepZoomTest1
  2: {
  3:   public partial class Page : UserControl
  4:   {
  5:     Point mousePosition = new Point();
  6: 
  7:     public Page()
  8:     {
  9:       InitializeComponent();
 10:       InitializeMouseEvent();
 11:     }
 12: 
 13:     private void InitializeMouseEvent()
 14:     {
 15:       this.MouseMove += new MouseEventHandler(Page_MouseMove);
 16:       this.KeyDown += new KeyEventHandler(Page_KeyDown);
 17:     }
 18: 
 19:     void Page_KeyDown(object sender, KeyEventArgs e)
 20:     {
 21: 
 22:       if (e.Key == Key.W)
 23:       {
 24:         Zoom(1.2f, mousePosition);
 25: 
 26:       }
 27: 
 28:       else if (e.Key == Key.X)
 29:       {
 30:         Zoom(0.8f, mousePosition);
 31:       }
 32:       else
 33:       {
 34:         HtmlPage.Window.Alert("请输入 W 或者 X 进行缩放!");
 35:       }
 36:     }
 37: 
 38:     void Page_MouseMove(object sender, MouseEventArgs e)
 39:     {
 40:       mousePosition = e.GetPosition(this);
 41:     }
 42:     public void Zoom(double zoom, Point pointToZoom)
 43:     {
 44:       Point logicalPoint = this.DeepZoomCan.ElementToLogicalPoint(pointToZoom);
 45:       this.DeepZoomCan.ZoomAboutLogicalPoint(zoom, logicalPoint.X, logicalPoint.Y);
 46:     }
 47:   }
 48: }

9. 添加对用户提示的 Alert 事件

Silverlight 2 中原生支持了对页面中的 DOM 调用!!!为了给用户更多的提示,在 Silverlight 2 中你可以添加以下键盘事件的判断,给用户更好的提示:

  1: else
  2: {
  3:   HtmlPage.Window.Alert("请输入"W"或者"X"进行缩放!");
  4: }

注意:你需要在 Silverlight 2 项目的默认引用中添加如下 namespace 的引用

1: using System.Windows.Browser;

10. 最终效果

Silverlight 2 手把手(之一) Deep Zoom

上一页  1 2 

Tags:Silverlight 手把手 之一

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接