读书人

C# 实专任意控件的随意拖动

发布时间: 2013-10-12 11:54:02 作者: rapoo

C# 实现任意控件的随意拖动

目的实现窗体里面的所有控件可以随意拖动

C#布局代码如下:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging;using System.Windows.Navigation;using System.Windows.Shapes;namespace DragLabel{    /// <summary>    /// MainWindow.xaml 的交互逻辑    /// </summary>    public partial class MainWindow : Window    {        bool IsMouseDown = false;        Point mousePoint;        object mouseCtrl = null;        public MainWindow()        {            InitializeComponent();        }        private void Window_MouseMove(object sender, MouseEventArgs e)        {            if (IsMouseDown)            {                if (e.LeftButton == MouseButtonState.Pressed)                {                    Point theMousePoint = e.GetPosition(this.canvas1);                    Canvas.SetLeft((UIElement)mouseCtrl, theMousePoint.X - (mousePoint.X - Canvas.GetLeft(((UIElement)mouseCtrl))));                    Canvas.SetTop((UIElement)mouseCtrl, theMousePoint.Y - (mousePoint.Y - Canvas.GetTop(((UIElement)mouseCtrl))));                    mousePoint = theMousePoint;                }            }        }        private void Window_MouseUp(object sender, MouseButtonEventArgs e)        {            if (IsMouseDown)            {                IsMouseDown = false;            }          }        private void label1_MouseDown(object sender, MouseButtonEventArgs e)        {            if (e.LeftButton == MouseButtonState.Pressed)            {                IsMouseDown = true;                mousePoint = e.GetPosition(this.canvas1);                mouseCtrl = sender;            }               }        private void stackPanel1_MouseDown(object sender, MouseButtonEventArgs e)        {            if (e.LeftButton == MouseButtonState.Pressed)            {                IsMouseDown = true;                mousePoint = e.GetPosition(this.canvas1);                mouseCtrl = sender;            }        }    }}


读书人网 >C#

热点推荐