WPF获取鼠标相对于屏幕的绝对位置
最新文章:Virson's Blog
最近在看《深入浅出WPF》,在做练习的时候自己做了一下扩展,在此记下:
XAML代码:
1 <Window x:Class="TestCanvas.MainWindow" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 Title="登录" Height="110px" Width="300px" WindowStartupLocation="CenterScreen" WindowStyle="None" 5 MaxHeight="110px" MaxWidth="300px" MinHeight="110px" MinWidth="300px" MouseDown="Mouse_downHandler"> 6 <Canvas> 7 <TextBlock Text="用户名:" Canvas.Left="12px" Canvas.Top="12px"/> 8 <TextBox x:Name="tbUserName" Height="23px" Width="200px" BorderBrush="Black" Canvas.Left="66px" Canvas.Top="9px"/> 9 <TextBlock Text="密码:" Canvas.Left="12px" Canvas.Top="40.72px" Height="16px" Width="36px"/> 10 <TextBox x:Name="tbPasword" Height="23px" Width="200px" BorderBrush="Black" Canvas.Left="66px" Canvas.Top="38px"/> 11 <Button Content="登录" Width="80px" Height="23px" Canvas.Left="66" Canvas.Top="67px"/> 12 <Button Content="退出" Width="80px" Height="23px" Canvas.Left="186" Canvas.Top="67px" Click="Close_clickHandler"/> 13 </Canvas> 14 </Window>
CSharp代码:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Runtime.InteropServices; 5 using System.Text; 6 using System.Threading.Tasks; 7 using System.Windows; 8 using System.Windows.Controls; 9 using System.Windows.Data; 10 using System.Windows.Documents; 11 using System.Windows.Input; 12 using System.Windows.Media; 13 using System.Windows.Media.Imaging; 14 using System.Windows.Navigation; 15 using System.Windows.Shapes; 16 17 namespace TestCanvas 18 { 19 /// <summary> 20 /// MainWindow.xaml 的交互逻辑 21 /// </summary> 22 public partial class MainWindow : Window 23 { 24 [StructLayout(LayoutKind.Sequential)] 25 public struct POINT 26 { 27 public int X; 28 public int Y; 29 30 public POINT(int x, int y) 31 { 32 this.X = x; 33 this.Y = y; 34 } 35 } 36 37 [DllImport("user32.dll", CharSet = CharSet.Auto)] 38 public static extern bool GetCursorPos(out POINT pt); 39 40 public MainWindow() 41 { 42 InitializeComponent(); 43 } 44 45 public void Close_clickHandler(Object sender, RoutedEventArgs e) 46 { 47 this.Close(); 48 } 49 50 private void Mouse_downHandler(object sender, MouseButtonEventArgs e) 51 { 52 Point p = e.MouseDevice.GetPosition(this); //获取鼠标相对位置 53 54 MainWindow.POINT pit = new MainWindow.POINT(); 55 MainWindow.GetCursorPos(out pit); //获取鼠标绝对位置 56 57 StringBuilder sbRel = new StringBuilder(); 58 sbRel.Append("相对位置:("); 59 sbRel.Append(p.X); 60 sbRel.Append(","); 61 sbRel.Append(p.Y); 62 sbRel.Append(")"); 63 tbUserName.Text = sbRel.ToString(); 64 65 StringBuilder sbAbs = new StringBuilder(); 66 sbAbs.Append("绝对位置:("); 67 sbAbs.Append(pit.X); 68 sbAbs.Append(","); 69 sbAbs.Append(pit.Y); 70 sbAbs.Append(")"); 71 tbPasword.Text = sbAbs.ToString(); 72 } 73 } 74 }
WPF获取鼠标相对于屏幕的绝对位置相关推荐
- WPF中获取鼠标相对于屏幕的位置
WPF中获取鼠标相对于屏幕的位置 周银辉 WPF编程时,我们经常使用Mouse.GetPosition(IInputElement ...
- WPF 获取鼠标屏幕位置、窗口位置、控件位置
原文:WPF 获取鼠标屏幕位置.窗口位置.控件位置 public struct POINT{public int X;public int Y;public POINT(int x, int y){t ...
- Android获取view焦点方向,android 中获取当前焦点所在屏幕中的位置 view.getLocationOnScreen(location)...
final int[] location = new int[2]; view.getLocationOnScreen(location); final int[] location = new in ...
- html5 js获取鼠标坐标,js怎么获取鼠标在div中的相对位置
大家在做网页的时候都可能会用到鼠标在div中的相对位置,那么怎么获取鼠标在div中的相对位置呢?下面由学习啦小编教大家怎么获取鼠标在div中的相对位置吧. 如何获取鼠标在div中的相对位置 代码如下: ...
- ubuntu 外接显示器设置 鼠标指针闪烁 屏幕缩放 相对位置设置 分辨率设置 -xrandr
配置:通过 xrandr 直接查看 笔记本电脑 最高分辨率 2880x1800 外接的显示器 最高分辨率 1920x1200 场景:笔记本电脑外接显示器,左边为外接显示器,右边为笔记本电脑 #! /b ...
- Windows核心编程_获取鼠标指定位置的RGB颜色值
Windows核心编程_获取鼠标指定位置的RGB颜色值 大家平常会见到很多屏幕取色工具,其原理都是获取鼠标位置的屏幕像素点颜色! 一般思路都是:获取鼠标位置,然后取出鼠标指向的屏幕像素点颜色! Get ...
- (一)MFC读取并显示一幅位图图像,并获取鼠标点击位置的像素坐标和灰度值(接上篇博客)
上篇博客简要介绍了如何利用MFC读取并显示一幅位图图像,并获取鼠标点击位置的像素坐标和灰度值信息,主要包含了对话框的创建和添加程序,代码也在上一页中给了大家,但是并没有详细说明功能,所以在这一节当中主 ...
- (一)MFC读取并显示一幅位图图像,并获取鼠标点击位置的像素坐标和灰度值
题目是老师布置的一道作业题,要求用C或C++完成,但不能用VTK/Opencv等软件包,经过很多摸索之后实现了该功能,后续可能还有其他功能要实现,所以先写一篇博客记录下,一方面是方便自己以后使用,另一 ...
- Unity UGUI获取鼠标在屏幕的准确点击位置
想要获取鼠标在屏幕的准确点击位置,千万不要胡乱写,什么转化坐标系,什么Ray射线检测都是浮云. 1,转化坐标系只是相对而言,并不能准确实现当前鼠标点击在屏幕的位置: 2,Ray检测,hit是需要碰撞的 ...
最新文章
- word 语音识别的数据丢失
- 对于oracle varchar 的种种
- 【计算机网络】关于分组交换和电路交换及其时延的讨论
- 【控制】《多智能体系统的动力学分析与设计》徐光辉老师-第7章-不确定分数阶系统的多一致
- js保持div悬浮,不随页面向下滚动而被覆盖
- 第四十一期:一道经典的MySQL面试题,答案出现三次反转
- centos7桌面没有计算机图标,centos7下创建桌面图标的方法
- 网规之路——强化项目管理知识点训练
- 单点登陆_规避单点故障,MySQL 8.0 MGR软负载怎么选?
- 计算机矢量图的优点,矢量图与位图的区别,各自的优缺点……
- Python 正则表达式大全,值得收藏
- 《ShowYou数组代码》第38题:对数组元素进行排序
- 风云2号卫星云图_中国为什么要发这么多卫星?答案没有出乎意料
- 增长黑客手册——02
- 电脑公司特别版5.0的驱动集成方法
- 基于S3C2440丛SD卡启动WinCE(或其它程序)的实现
- 什么是僵死进程(Zombies)
- 除了爱你的人,这个世界没人会记得你
- 解决ASUS电脑重装系统导致键盘灯无法调节和ASUS Battery Health Charging变灰不能选择充电模式默认充电80%
- c语言最优树的构造,哈夫曼树的构造及编码 Haffman树的构造及其编码
热门文章
- 毕业设计出现的一个严重错误----文件不能相互引用
- asp.net Forums 之HttpHandler和HttpModule
- GraphPad Prism 9.3 MacOS 2021科研绘图统计 支持Monterey 安装使用教程
- GraphPad Prism 的统计显著性报告中*或**或**的含义是什么?
- Qt学习(五):TCP通信
- java同步锁实例_Java lock同步锁使用实例解析
- TortoiseSVN新人使用指南
- 使用gnuplot绘制直方图
- 黄仁勋登上《时代周刊》2021年度全球具影响力人物
- 【深度学习】一文搞定面试中的优化算法