WPF中获取鼠标相对于屏幕的位置
                                   周银辉

WPF编程时,我们经常使用Mouse.GetPosition(IInputElement relativeTo)或MouseEventArgs.GetPosition(IInputElement relativeTo)来获取鼠标相对于某一界面元素的相对位置,这自然也联想到另外的一个问题:如何获取鼠标相对于屏幕的位置。  在WPF文档中找了半天也没找到。
但我们别忘了 System.Windows.Forms.Control类中有一个静态属性System.Windows.Forms.Control.MousePosition,我们可以在WPF中继续使用它,当然这需要你的项目添加 System.Windows.Forms和 System.Drawing名字空间,这多少让人有些别扭,因为玩WPF时总有点不喜欢调用System.Windows.Forms下的东西,喜新厌旧吧。
另外一个方法是平台调用,在VB的文档中可以找到一个API:Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As Long,我们可以在C#中使用它,代码如下:

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;

namespace Samples
{
    class Win32
    {
        [StructLayout(LayoutKind.Sequential)]
        public struct POINT
        {
            public int X;
            public int Y;

            public POINT(int x, int y)
            {
                this.X = x;
                this.Y = y;
            }
        }

       

        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        public static extern bool GetCursorPos(out POINT pt);     
         
    }
}

OK,问题解决了:)

WPF中获取鼠标相对于屏幕的位置相关推荐

  1. WPF中获取鼠标相对于桌面位置

    原文:WPF中获取鼠标相对于桌面位置 var transform = PresentationSource.FromVisual(this).CompositionTarget.TransformFr ...

  2. Android获取view焦点方向,android 中获取当前焦点所在屏幕中的位置 view.getLocationOnScreen(location)...

    final int[] location = new int[2]; view.getLocationOnScreen(location); final int[] location = new in ...

  3. WPF中的鼠标事件详解

    WPF中的鼠标事件详解 Uielement和ContentElement都定义了十个以Mouse开头的事件,8个以PreviewMouse开头的事件,MouseMove,PreviewMouseMov ...

  4. WPF中对鼠标事件转换为命令处理模式的鼠标位置参数传递及EventArgs传递

    在WPF中使用命令模型,对于实现ICommandSource的元素来讲,比较方便,对于未实现ICommandSouce的元素来讲可以利用Blend中提供的行为来解决.通常情况下,命令对象可以传递命令参 ...

  5. html自定义指针,如何自定义鼠标指针 怎样在wpf中自定义鼠标指针

    如何在ppt中自定义鼠标指针的形状? 魔兽世界怎么自定义鼠标指针 在系统 控制面板 里面鼠标属性 指针里面改就可以了 下面有个浏览 可以自定义换图案 怎样在网页中设定一整套自定义的鼠标指针? 麻烦了 ...

  6. 在高德地图中获取鼠标点击的经纬度

    本文目录 一.注册高德开放平台 (一)创建应用 (二)添加 Key 二.代码实现 1. 引入必要的 CSS 文件与 JS 文件 2. 放置地图容器 3. 核心 JavaScript 代码 三.效果图 ...

  7. AHK 键盘控制鼠标点击屏幕不同位置

    按键控制鼠标点击屏幕特定位置 按键控制重设屏幕点击位置 按键显示当前鼠标在屏幕上的位置 V1.0代码功能: 按 A 和 D 分别对应点击两个单独的屏幕坐标 按 Q 和 E分别对应重新设置两个单独的屏幕 ...

  8. Python 飞机大战游戏中 获取被击中飞机的坐标位置信息

    Python 飞机大战游戏中 获取被击中飞机的坐标位置信息 在参考现有的飞机大战游戏代码,写第一个python游戏,子弹击中飞机后,飞机消失,想着如果能有爆照效果就好了. 于是新建了一个爆炸效果的sp ...

  9. Golang中获取中文字符串的子串字符位置及截取子串

    Golang中获取中文字符串的子串字符位置及截取子串 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.cs ...

最新文章

  1. Java 程序员必备的 15 个框架,前 3 个地位无可动摇!
  2. ERP顾问的三层境界
  3. [链接]博客园中应用LaTex进行公式编写
  4. Eclipse Open J9:Eclipse OMR项目提供的开源JVM
  5. 「学习笔记」多项式相关
  6. Hadoop:eclipse配置hadoop-eclipse-plugin(版本hadoop2.7.3)
  7. opengl加载显示3D模型FBX类型文件)
  8. POJ - 3662 Telephone Lines(分层图最短路)
  9. 由奥迪车灯想到的前端动画
  10. tomcat安全机制j_security_check(简单版)
  11. 立即通过Xumo.TV在线观看免费电视
  12. linux 字符串加入中括号,Linux Shell 基础 -- 总结几种括号、引号的用法
  13. 【Python爬虫】requests与urllib库的区别
  14. 一本名不符实的.NET书籍: Game Engine Toolset Development
  15. Linux查看目录大小——du命令
  16. MySQL多表左右连接查询
  17. 三星电视机dns服务器维护,4招解救三星智能电视看视频卡顿问题
  18. 【英语流利说】让你发音更标准的十个窍门
  19. java 函数表_C语言、Java语言的符号表区别和特点是什么?分别是如和处理函数参数的?...
  20. altium designer芯片引脚间距规则过小

热门文章

  1. win7 创建FTP站点
  2. OC动态创建的问题变量数组.有数组,在阵列13要素,第一个数据包阵列,每3元素为一组,分成若干组,这些数据包的统一管理。最后,一个数组.(要动态地创建一个数组).两种方法...
  3. Linux运维系统工程师系列---25
  4. System.Transactions深入了解
  5. 用css网站布局之十步实录~
  6. Kotlin 1.3.30 发布,改进性能和引入新特性
  7. 揭秘 ClownFish 比手写代码还快的原因
  8. ASP.NET Core 异常和错误处理 - ASP.NET Core 基础教程 - 简单教程,简单编程
  9. Angular CLI 使用教程指南参考
  10. IDEA中如何彻底删除项目