大佬教程收集整理的这篇文章主要介绍了兼容Silverlight4的实用的Silverlight可拖放工具类源代码,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
public static class DragDrop { private static bool IsDragging = false; private static Point curPoint; private const int MAX_ZINDEX = 99999; private const double CURRENT_OPACITY = 0.5; private static int lastZIndex; private static double lastOpacity; private static void sender_MouSELEftButtonDown(object sender,MouseButtonEventArgs E) { UIElement uiElement = sender as UIElement; if (uiElement != null) { uiElement.CaptureMouse(); lastZIndex = (int)uiElement.GetValue(Canvas.ZIndexProperty); uiElement.SETVALue(Canvas.ZIndexProperty,MAX_ZINDEX); lastOpacity = uiElement.opacity; uiElement.opacity = CURRENT_OPACITY; IsDragging = true; curPoint = new Point(e.GetPosition(null).X,e.GetPosition(null).Y); } } private static void sender_MouseMove(object sender,MouseEventArgs E) { if (!IsDragging) { return; } UIElement uiElement = sender as UIElement; if (uiElement != null) { double currentLeft = (double)uiElement.GetValue(Canvas.LeftProperty); double currentTop = (double)uiElement.GetValue(Canvas.TopProperty); double newLeft = (double)currentLeft + e.GetPosition(null).X - curPoint.X; double newTop = (double)currentTop + e.GetPosition(null).Y - curPoint.Y; uiElement.SETVALue(Canvas.LeftProperty,newLeft); uiElement.SETVALue(Canvas.TopProperty,newTop); curPoint = new Point(e.GetPosition(null).X,e.GetPosition(null).Y); } } private static void sender_MouSELEftButtonUp(object sender,MouseButtonEventArgs E) { UIElement uiElement = sender as UIElement; if (uiElement != null) { uiElement.ReleaseMouseCapture(); IsDragging = false; uiElement.SETVALue(Canvas.ZIndexProperty,lastZIndeX); uiElement.opacity = lastOpacity; } } public static void Load(UIElement sender) { sender.MouSELEftButtonDown += new MouseButtonEventHandler(sender_MouSELEftButtonDown); sender.MouSELEftButtonUp += new MouseButtonEventHandler(sender_MouSELEftButtonUp); sender.MouseMove += new MouseEventHandler(sender_MouseMovE); } public static void UnLoad(UIElement sender) { sender.MouSELEftButtonDown -= new MouseButtonEventHandler(sender_MouSELEftButtonDown); sender.MouSELEftButtonUp -= new MouseButtonEventHandler(sender_MouSELEftButtonUp); sender.MouseMove -= new MouseEventHandler(sender_MouseMovE); } } DragDrop工具类的使用方法:
DragDrop.Load(LayoutRoot);
DragDrop是一个静态类,使用起来非常简单,以上只要一行代码就可以实现对Grid控件的拖放操作了。
希望对大家有所帮助~!
以上是大佬教程为你收集整理的兼容Silverlight4的实用的Silverlight可拖放工具类源代码全部内容,希望文章能够帮你解决兼容Silverlight4的实用的Silverlight可拖放工具类源代码所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。