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里的元素都变成可拖拽的.

  • 相关阅读:
    反转链表 16
    CodeForces 701A Cards
    hdu 1087 Super Jumping! Jumping! Jumping!(动态规划)
    hdu 1241 Oil Deposits(水一发,自我的DFS)
    CodeForces 703B(容斥定理)
    poj 1067 取石子游戏(威佐夫博奕(Wythoff Game))
    ACM 马拦过河卒(动态规划)
    hdu 1005 Number Sequence
    51nod 1170 1770 数数字(数学技巧)
    hdu 2160 母猪的故事(睡前随机水一发)(斐波那契数列)
  • 原文地址:https://www.cnblogs.com/aspnetx/p/1338396.html
Copyright © 2011-2022 走看看