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

  • 相关阅读:
    查看mysql数据库引擎
    crontab 从nano 转换为 vim
    Linux中,去掉终端显示的当前目录的绝对路径
    nginx 卸载后重新安装/etc/nginx配置文件没了,cannot open /etc/nginx/nginx.conf (No such file or directory)
    rabbitmq 配置
    OSError: mysql_config not found
    No module named 'ConfigParser'
    windows 安装tensorflow
    微服务架构设计
    centOS rabbitmq 安装
  • 原文地址:https://www.cnblogs.com/aspnetx/p/1338396.html
Copyright © 2011-2022 走看看