zoukankan      html  css  js  c++  java
  • Silverlight drag and drop参考代码

    public partial class Page : UserControl

    {
    bool isDragDropInEffect = false;
    Point pos;
     
    public Page()
    {
        InitializeComponent();
        // Loop through all the UIElements in the Canvas  
        // and attach Mouse Event Handlers to the Element
        foreach (UIElement uiEle in CanvasParent.Children)
        {
            uiEle.MouseMove += new MouseEventHandler(Element_MouseMove);
            uiEle.MouseLeftButtonDown += new MouseButtonEventHandler(Element_MouseLeftButtonDown);
            uiEle.MouseLeftButtonUp += new MouseButtonEventHandler(Element_MouseLeftButtonUp);
        }
    }
     
    void Element_MouseMove(object sender, MouseEventArgs e)
    {
        if (isDragDropInEffect)
        {
            FrameworkElement currEle = sender as FrameworkElement;
            // Retrieving the item's current x and y position
            double xPos = e.GetPosition(null).X - pos.X;
            double yPos = e.GetPosition(null).Y - pos.Y;
     
            // Re-position Element
            currEle.SetValue(Canvas.TopProperty, yPos + (double)currEle.GetValue(Canvas.TopProperty));
            currEle.SetValue(Canvas.LeftProperty, xPos + (double)currEle.GetValue(Canvas.LeftProperty));
     
            // Reset the new position value
            pos = e.GetPosition(null);
        }
    }
     
     
    void Element_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
        FrameworkElement fEle = sender as FrameworkElement;
        isDragDropInEffect = true;
        // x and y coords of mouse pointer position
        pos = e.GetPosition(null);  
        // Enable mouse capture on element
        fEle.CaptureMouse();
        // Set the cursor to 'Hand' when mouse pointer is over element
        fEle.Cursor = Cursors.Hand;
    }
     
     
    void Element_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
    {
        if (isDragDropInEffect)
        {
            FrameworkElement ele = sender as FrameworkElement;
            isDragDropInEffect = false;
            // Removes Mouse Capture from Element being dragged
            ele.ReleaseMouseCapture();
        }
    }
     

    }

    这段代码把CanvasContent里的元素都变成可拖拽的.

  • 相关阅读:
    什么时间调用 UpdateData() MFC函数
    网页页面内跳转
    关于SVG文件在Firefox中正确显示的研究
    火车座位号分布情况
    使用“性能监视器”监视系统性能/运行情况
    SQL Server Cache Manager
    SQL连接:localhost、127.0.0.1、(local)的区别
    SQL Server如何保证可空字段中非空值唯一
    SQL 2005使用正则表达式
    從數據讀取資料方法
  • 原文地址:https://www.cnblogs.com/aspnetx/p/1338396.html
Copyright © 2011-2022 走看看