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

WPF,窗口拖动事件与窗口内控件点击事件

帮手程序(assister.exe)在运行鼠标自动操作脚本时,可以弹出置顶的悬浮窗口,实时显示程序运行状态。悬浮窗口上一个小按钮可以快速切换回帮手程序主窗口。如图:

这个悬浮窗口可以自由拖动到屏幕任意位置,避免遮挡其他操作窗口。实现该功能时,通常只需在窗口控件中处理PreviewMouseLeftButtonDown事件,并执行以下代码:

private void MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    if (e.LeftButton == MouseButtonState.Pressed)
    {
        this.DragMove();
    }
}

然而,由于窗口内部包含按钮控件需要响应点击操作,上述代码会导致按钮点击事件无法触发。

修改后的解决方案是让窗口处理以下三个关键事件:


<Window 
        ...
        PreviewMouseLeftButtonDown="Window_PreviewMouseLeftButtonDown"
        PreviewMouseMove="Window_PreviewMouseMove"
        PreviewMouseLeftButtonUp="Window_PreviewMouseLeftButtonUp"

        ...
        Topmost="True"
        WindowStyle="None"
        AllowsTransparency="True"
        Background="Transparent"
        >

        private void Window_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            _mousePressedPosition = e.GetPosition(this);
        }

        private void Window_PreviewMouseMove(object sender, MouseEventArgs e)
        {
            if (Mouse.LeftButton == MouseButtonState.Pressed && _mousePressedPosition != e.GetPosition(this))
            {
                _isMouseDragMove = true;
                DragMove();
            }
        }

        private void Window_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            if (_isMouseDragMove)
            {
                _isMouseDragMove = false;
                e.Handled = true;
            }
        }

【免费】帮手Pro1.2.3自动化鼠标点击资源-CSDN下载

http://www.lryc.cn/news/602043.html

相关文章:

  • Visual Studio Code使用
  • MCP资源管理深度实践:动态数据源集成方案
  • Jenkins vs GitLab CI/CD vs GitHub Actions在容器化部署流水线中的对比分析与实践指南
  • Spring Boot 2整合Druid的两种方式
  • Spring Boot日志开发实战手册:集成/输出/级别控制/持久化精要
  • docker排查OOM
  • c++ 中的字符串相关的操作
  • 「源力觉醒 创作者计划」_文心大模型4.5系列开源模型,意味着什么?对开发者、对行业生态有何影响?
  • 重复文件清理工具,附免费链接
  • 聊聊工业相机中的硬触发、软触发和视频流模式
  • MFC UI对话框
  • puppeteer 系列模块的系统性、详细讲解
  • 使用JavaScript实现一个代办事项的小案例
  • 八大神经网络的区别
  • 【RH134 问答题】第 6 章 管理 SELinux 安全性
  • 计算机网络(基础篇)
  • 《零基础入门AI: 从轮廓查找到形态学变换(OpenCV图像预处理)》
  • 【深度学习新浪潮】基于文字生成3D城市景观的算法有哪些?
  • Leaflet 综合案例-聚类图层控制
  • Python快速入门(2025版):输入
  • 婚纱摄影管理系统(发送邮箱、腾讯地图API、物流API、webSocket实时聊天、协同过滤算法、Echarts图形化分析)
  • C++ list 容器全解析:从构造到模拟实现的深度探索----《Hello C++ Wrold!》(16)--(C/C++)
  • 数值计算 | 图解基于龙格库塔法的微分方程计算与连续系统离散化(附Python实现)
  • C primer plus (第六版)第九章 编程练习第6题
  • 【Rust异步】async和await异步编程实战:高并发任务处理全解析
  • Java 排序
  • 股指期货周度想法
  • RWA 正当红,是 DeFi 的终点、拐点,还是新起点?
  • 【C++】手搓一个STL风格的vector容器
  • 7.DRF 过滤、排序、分页