C#實現點擊窗體任意位置拖動

m47c 9年前發布 | 4K 次閱讀 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 DragWindowTest
{
/// <summary>
/// MainWindow.xaml 的交互邏輯
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private static bool IsDrag = false;
private double enterX;
private double enterY;
private void Window_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
IsDrag = true;
enterX = e.GetPosition(this).X;
enterY = e.GetPosition(this).Y;
}

        private void Window_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)  
        {  
            IsDrag = false;  
            enterX = 0;  
            enterY = 0;  
        }  
        private void Window_MouseMove(object sender, MouseEventArgs e)  
        {  
            if (IsDrag)  
            {  
                this.Left += e.GetPosition(this).X - enterX;  
                this.Top += e.GetPosition(this).Y - enterY;  
            }  
        }  

    }  
}  </pre> 


 本文由用戶 m47c 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!