成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Silverlight拖放功能相關應用技巧分享

開發 開發工具
如果我們想要實現Silverlight拖放功能,首先需要做的就出發一些相關事件,這些事件包括:MouseLeftButtonDown事件;MouseMove事件;MouseLeftButtonUp事件等等。

Silverlight工具是一個非常有用的開發工具。可以幫助開發人員輕松實現基于多媒體播放操作等功能。在實際使用中,我們會體會到其強大的功能特定。在這里就先來了解其中Silverlight拖放功能的作用。#t#

在Silverlight拖放功能的實現中,分為三個步驟:

1.按下鼠標,觸發MouseLeftButtonDown事件,選擇要拖動的對象。

2.移動鼠標,觸發MouseMove事件,移動選擇的對象。

3.放開鼠標,觸發MouseLeftButtonUp事件,停止捕捉事件。

做一個簡單的界面,用一個按鈕來顯示Silverlight拖放功能,如下XAML聲明:

  1. < Canvas Background="#46461F"> 
  2. < Button   
  3. MouseLeftButtonDown="OnMouseDown"   
  4. MouseMove="OnMouseMove" 
  5. MouseLeftButtonUp="OnMouseUp"   
  6. Canvas.Left="50" Canvas.Top="50"
     Background="Red" 
  7. FontSize="18" 
  8. Width="160" Height="80"> 
  9. < Button.Content> 
  10. < StackPanel Orientation=
    "Horizontal" HorizontalAlignment
    ="Center" 
  11. VerticalAlignment="Center"> 
  12. < Image Source="smile_6.png">< /Image> 
  13. < TextBlock Text="拖動我" 
    VerticalAlignment="Center"
     Margin="10">< /TextBlock> 
  14. < /StackPanel> 
  15. < /Button.Content> 
  16. < /Button> 
  17. < /Canvas> 

這里為了界面顯示效果,使用了控件模板,后續會專門講到。

Silverlight拖放功能之開始拖放操作

開始拖放操作,實現MouseLeftButtonDown事件處理程序,用兩個全局變量來記錄當前鼠標的位置和鼠標是否保持移動。

 

  1. bool trackingMouseMove = false;  
  2. Point mousePosition;  
  3. void OnMouseDown(object sender, 
    MouseButtonEventArgs e)  
  4. {  
  5. FrameworkElement element = sender 
    as FrameworkElement;  
  6. mousePosition = e.GetPosition(null);  
  7. trackingMouseMove = true;  
  8. if (null != element)  
  9. {  
  10. element.CaptureMouse();  
  11. element.Cursor = Cursors.Hand;  
  12. }  

Silverlight拖放功能之移動對象

移動對象,實現MouseMove事件處理程序,計算元素的位置并更新,同時更新鼠標的位置。

 

  1. void OnMouseMove(object sender, 
    MouseEventArgs e)  
  2. {  
  3. FrameworkElement element = 
    sender as FrameworkElement;  
  4. if (trackingMouseMove)  
  5. {  
  6. double deltaV = e.GetPosition(null).
    Y - mousePosition.Y;  
  7. double deltaH = e.GetPosition(null).
    X - mousePosition.X;  
  8. double newTop = deltaV + (double)
    element.GetValue(Canvas.TopProperty);  
  9. double newLeft = deltaH + (double)
    element.GetValue(Canvas.LeftProperty);  
  10. element.SetValue(Canvas.TopProperty, newTop);  
  11. element.SetValue(Canvas.LeftProperty, newLeft);  
  12. mousePosition = e.GetPosition(null);  
  13. }  

Silverlight拖放功能之完成拖放操作

完成拖放操作,實現MouseLeftButtonUp事件處理程序。

 

  1. void OnMouseUp(object sender, 
    MouseButtonEventArgs e)  
  2. {  
  3. FrameworkElement element = 
    sender as FrameworkElement;  
  4. trackingMouseMove = false;  
  5. element.ReleaseMouseCapture();  
  6. mousePositionmousePosition.X = 
    mousePosition
    .Y = 0;  
  7. element.Cursor = null;  

 

責任編輯:曹凱 來源: 博客園
相關推薦

2009-12-29 16:08:41

Silverlight

2009-12-29 17:56:47

Silverlight

2009-12-30 18:23:13

Silverlight

2009-12-30 13:37:24

Silverlight

2009-12-30 18:18:32

Silverlight

2009-12-31 17:00:40

Silverlight

2010-01-04 14:35:55

Silverlight

2009-12-31 16:44:53

Silverlight

2009-12-31 10:21:53

Silverlight

2009-12-30 09:55:51

Silverlight

2010-01-28 10:55:14

Android電源管理

2010-01-04 14:49:30

Silverlight

2010-03-04 14:39:52

Python讀取輸入值

2010-02-05 13:44:06

C++ eof()函數

2010-01-04 14:14:43

Silverlight

2009-12-30 10:15:57

Silverlight

2009-12-30 16:19:49

Silverlight

2009-12-15 10:23:23

Ruby應用技巧

2010-01-25 18:33:35

Android鍵盤操作

2009-12-10 17:27:39

PHP操作Cookie
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩一区二区三区在线 | 天天色天天射天天干 | 91精品国产91久久久久久最新 | 91视频在线 | 91在线精品秘密一区二区 | www.国产日本 | 亚洲成人精品一区二区 | 久久一二| 亚洲 中文 欧美 日韩 在线观看 | 黄视频国产 | 亚洲国产aⅴ成人精品无吗 综合国产在线 | 色视频www在线播放国产人成 | h片在线看 | 久久久久久成人 | 第一色在线| 91精品久久久久久久 | 精品久久久久久亚洲精品 | 欧美日韩国产精品一区 | 成人亚洲精品久久久久软件 | 中文字幕在线视频一区二区三区 | 国产成人a亚洲精品 | 国产黄色免费网站 | 国产精品99视频 | 久久亚洲一区二区三区四区 | 99pao成人国产永久免费视频 | 国产成人99久久亚洲综合精品 | 欧美二区乱c黑人 | a级片www| 日韩欧美专区 | 国产精品伦一区二区三级视频 | 日韩在线视频一区 | 精品精品 | 国产精品视频久久久久 | 日韩欧美精品在线 | 欧美日韩免费 | 免费在线观看黄色av | 黄色一级毛片免费看 | 精品日本中文字幕 | 嫩草最新网址 | 91久久国产综合久久91精品网站 | 国产精品国产a级 |