[学习记号 - SL代码] Silverlight可拖放工具类

[学习记号 - SL代码] Silverlight可拖放工具类,第1张

概述解决的问题:对一个域多个控件实现可拖放的鼠标 *** 作,将此实现封装为一个常用类以便复用 public static class DragDrop{ private static bool IsDragging = false; private static Point curPoint; private const int MAX_ZINDEX = 99999;

解决的问题:对一个域多个控件实现可拖放的鼠标 *** 作,将此实现封装为一个常用类以便复用

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);    }}

 

原文参考:http://bbs.silverlightchina.net/forum.PHP?mod=vIEwthread&tID=2143&extra=page%3D2%26filter%3Ddigest%26digest%3D1

总结

以上是内存溢出为你收集整理的[学习记号 - SL代码] Silverlight可拖放工具类全部内容,希望文章能够帮你解决[学习记号 - SL代码] Silverlight可拖放工具类所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1072743.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存