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.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中获取鼠标相对于屏幕的位置相关推荐
- WPF中获取鼠标相对于桌面位置
原文:WPF中获取鼠标相对于桌面位置 var transform = PresentationSource.FromVisual(this).CompositionTarget.TransformFr ...
- Android获取view焦点方向,android 中获取当前焦点所在屏幕中的位置 view.getLocationOnScreen(location)...
final int[] location = new int[2]; view.getLocationOnScreen(location); final int[] location = new in ...
- WPF中的鼠标事件详解
WPF中的鼠标事件详解 Uielement和ContentElement都定义了十个以Mouse开头的事件,8个以PreviewMouse开头的事件,MouseMove,PreviewMouseMov ...
- WPF中对鼠标事件转换为命令处理模式的鼠标位置参数传递及EventArgs传递
在WPF中使用命令模型,对于实现ICommandSource的元素来讲,比较方便,对于未实现ICommandSouce的元素来讲可以利用Blend中提供的行为来解决.通常情况下,命令对象可以传递命令参 ...
- html自定义指针,如何自定义鼠标指针 怎样在wpf中自定义鼠标指针
如何在ppt中自定义鼠标指针的形状? 魔兽世界怎么自定义鼠标指针 在系统 控制面板 里面鼠标属性 指针里面改就可以了 下面有个浏览 可以自定义换图案 怎样在网页中设定一整套自定义的鼠标指针? 麻烦了 ...
- 在高德地图中获取鼠标点击的经纬度
本文目录 一.注册高德开放平台 (一)创建应用 (二)添加 Key 二.代码实现 1. 引入必要的 CSS 文件与 JS 文件 2. 放置地图容器 3. 核心 JavaScript 代码 三.效果图 ...
- AHK 键盘控制鼠标点击屏幕不同位置
按键控制鼠标点击屏幕特定位置 按键控制重设屏幕点击位置 按键显示当前鼠标在屏幕上的位置 V1.0代码功能: 按 A 和 D 分别对应点击两个单独的屏幕坐标 按 Q 和 E分别对应重新设置两个单独的屏幕 ...
- Python 飞机大战游戏中 获取被击中飞机的坐标位置信息
Python 飞机大战游戏中 获取被击中飞机的坐标位置信息 在参考现有的飞机大战游戏代码,写第一个python游戏,子弹击中飞机后,飞机消失,想着如果能有爆照效果就好了. 于是新建了一个爆炸效果的sp ...
- Golang中获取中文字符串的子串字符位置及截取子串
Golang中获取中文字符串的子串字符位置及截取子串 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.cs ...
最新文章
- Java 程序员必备的 15 个框架,前 3 个地位无可动摇!
- ERP顾问的三层境界
- [链接]博客园中应用LaTex进行公式编写
- Eclipse Open J9:Eclipse OMR项目提供的开源JVM
- 「学习笔记」多项式相关
- Hadoop:eclipse配置hadoop-eclipse-plugin(版本hadoop2.7.3)
- opengl加载显示3D模型FBX类型文件)
- POJ - 3662 Telephone Lines(分层图最短路)
- 由奥迪车灯想到的前端动画
- tomcat安全机制j_security_check(简单版)
- 立即通过Xumo.TV在线观看免费电视
- linux 字符串加入中括号,Linux Shell 基础 -- 总结几种括号、引号的用法
- 【Python爬虫】requests与urllib库的区别
- 一本名不符实的.NET书籍: Game Engine Toolset Development
- Linux查看目录大小——du命令
- MySQL多表左右连接查询
- 三星电视机dns服务器维护,4招解救三星智能电视看视频卡顿问题
- 【英语流利说】让你发音更标准的十个窍门
- java 函数表_C语言、Java语言的符号表区别和特点是什么?分别是如和处理函数参数的?...
- altium designer芯片引脚间距规则过小
热门文章
- win7 创建FTP站点
- OC动态创建的问题变量数组.有数组,在阵列13要素,第一个数据包阵列,每3元素为一组,分成若干组,这些数据包的统一管理。最后,一个数组.(要动态地创建一个数组).两种方法...
- Linux运维系统工程师系列---25
- System.Transactions深入了解
- 用css网站布局之十步实录~
- Kotlin 1.3.30 发布,改进性能和引入新特性
- 揭秘 ClownFish 比手写代码还快的原因
- ASP.NET Core 异常和错误处理 - ASP.NET Core 基础教程 - 简单教程,简单编程
- Angular CLI 使用教程指南参考
- IDEA中如何彻底删除项目