当前位置: 首页 > news >正文

点击窗体任意位置拖动 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;
            }
        }
 
    }
}


相关文章:

  • 天翼宣传的软肋
  • asp.net gridview 分页
  • Flex与.NET互操作(四):使用HttpService、URLReqeust和URLLoader加载/传输数据
  • WPF组件化开发技术实践
  • 犀利广州话
  • Flex与.NET互操作(五):使用FileReference+HttpHandler实现文件上传/下载
  • wpf mvvm模式 实例
  • 近期谷歌网页收录数量已经明显超过百度
  • JS操作cookie
  • JS实现拖拽
  • JS显示时间
  • 我开发的一个信息管理小工具——PersonalInfo
  • Oracle字符串字段内的字符排序
  • 创建第一个windows服务
  • jquery的get和post提交
  • 分享一款快速APP功能测试工具
  • 时间复杂度分析经典问题——最大子序列和
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • bootstrap创建登录注册页面
  • DataBase in Android
  • EventListener原理
  • Git同步原始仓库到Fork仓库中
  • Invalidate和postInvalidate的区别
  • java多线程
  • JS笔记四:作用域、变量(函数)提升
  • Python学习笔记 字符串拼接
  • vuex 学习笔记 01
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • 构建工具 - 收藏集 - 掘金
  • 两列自适应布局方案整理
  • 小程序测试方案初探
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • ​油烟净化器电源安全,保障健康餐饮生活
  • #define、const、typedef的差别
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • $.proxy和$.extend
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (C++)八皇后问题
  • (Java数据结构)ArrayList
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (zhuan) 一些RL的文献(及笔记)
  • (八)Spring源码解析:Spring MVC
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)计算机毕业设计ssm电影分享网站
  • (九十四)函数和二维数组
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (转)http-server应用
  • (转)树状数组
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • .apk 成为历史!