WPF-鼠标移动控件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
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 WpfApp2
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
bool mouseStatus = false;
private void Button_MouseDown(object sender, MouseButtonEventArgs e)
{
var c = sender as Control;
_isMouseDown = true;
_mouseDownPosition = e.GetPosition(this);
var transform = c.RenderTransform as TranslateTransform;
if (transform == null)
{
transform = new TranslateTransform();
c.RenderTransform = transform;
}
_mouseDownControlPosition = new Point(transform.X, transform.Y);
c.CaptureMouse();
}
private void Button_MouseUp(object sender, MouseButtonEventArgs e)
{
var c = sender as Control;
_isMouseDown = false;
c.ReleaseMouseCapture();
}
private Point _mouseDownControlPosition;
private bool _isMouseDown;
private Point _mouseDownPosition;
private void Button_MouseMove(object sender, MouseEventArgs e)
{
if (_isMouseDown) {
var c = sender as Control;
var pos = e.GetPosition(this);
var dp = pos - _mouseDownPosition;
var transform = c.RenderTransform as TranslateTransform;
transform.X = _mouseDownControlPosition.X + dp.X;
transform.Y = _mouseDownControlPosition.Y + dp.Y;
}
}
}
}
__EOF__

本文链接:https://www.cnblogs.com/mrwangxs/p/15812795.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步