SilverLight拖动具体实现方式介绍

SilverLight的使用可以帮助开发人员轻松的解决一些以前爱只能依靠美工才能解决的相关开发问题。现在我们将会学到其中的一个使用技巧,就是SilverLight拖动的实现方式。#t#

创新互联公司是一家专业提供汕城企业网站建设,专注与成都网站制作、网站建设、HTML5、小程序制作等业务。10年已为汕城众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。

SilverLight拖动前台代码:

  1. < UserControl 
  2. xmlns="http://schemas.microsoft.
    com/winfx/2006/xaml/presentation"
     
  3. xmlns:x="http://schemas.
    microsoft.com/winfx/2006/xaml"
     
  4. x:Class="SilverlightApplic
    ation6.Page"
     
  5. Width="640" Height="480"> 
  6. < Canvas x:Name="LayoutRoot" 
    Background="White"> 
  7. < Image Margin="263,185,249,167" 
    Source="1.png" Stretch="Fill" 
    MouseLeftButtonDown="Image_
    MouseLeftButtonDown"
       
  8. MouseMove="Image_MouseMove" 
  9. MouseLeftButtonUp="Image_
    MouseLeftButtonUp"
    /> 
  10. < /Canvas> 
  11. < /UserControl> 

SilverLight拖动后台代码:

 
 
 
  1. using System;  
  2. using System.Windows;  
  3. using System.Windows.Controls;  
  4. using System.Windows.Documents;  
  5. using System.Windows.Ink;  
  6. using System.Windows.Input;  
  7. using System.Windows.Media;  
  8. using System.Windows.Media.Animation;  
  9. using System.Windows.Shapes;  
  10. namespace SilverlightApplication6  
  11. {  
  12. public partial class Page : UserControl  
  13. {  
  14. bool trackingMouseMove = false;  
  15. Point mousePosition;  
  16. public Page()  
  17. {  
  18. // 需要初始化变量  
  19. InitializeComponent();  
  20. }  
  21. private void Image_MouseLeftButtonDown
    (object sender, MouseButtonEventArgs e)  
  22. {  
  23. FrameworkElement element = 
    sender as FrameworkElement;  
  24. mousePosition = e.GetPosition(null);  
  25. trackingMouseMove = true;  
  26. if (null != element)  
  27. {  
  28. element.CaptureMouse();  
  29. element.Cursor = Cursors.Hand;  
  30. }  
  31. }  
  32. private void Image_MouseMove(object 
    sender, MouseEventArgs e)  
  33. {  
  34. FrameworkElement element = sender 
    as FrameworkElement;  
  35. if (trackingMouseMove)  
  36. {  
  37. double deltaV = e.GetPosition(null).
    Y - mousePosition.Y;  
  38. double deltaH = e.GetPosition(null).
    X - mousePosition.X;  
  39. double newTop = deltaV + (double)element.
    GetValue(Canvas.TopProperty);  
  40. double newLeft = deltaH + (double)
    element.GetValue(Canvas.LeftProperty);  
  41. element.SetValue(Canvas.TopProperty, newTop);  
  42. element.SetValue(Canvas.LeftProperty, newLeft);  
  43. mousePosition = e.GetPosition(null);  
  44. }  
  45. }  
  46. private void Image_MouseLeftButtonUp
    (object sender, MouseButtonEventArgs e)  
  47. {  
  48. FrameworkElement element = sender 
    as FrameworkElement;  
  49. trackingMouseMove = false;  
  50. element.ReleaseMouseCapture();  
  51. mousePositionmousePosition.X = 
    mousePosition.Y = 0;  
  52. element.Cursor = null;  
  53. }  
  54. }  

以上就是对SilverLight拖动相关实现方法做得具体介绍。

标题名称:SilverLight拖动具体实现方式介绍
当前地址:http://www.hantingmc.com/qtweb/news21/302671.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联