最新文章: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获取鼠标相对于屏幕的绝对位置相关推荐

  1. WPF中获取鼠标相对于屏幕的位置

    WPF中获取鼠标相对于屏幕的位置                                   周银辉 WPF编程时,我们经常使用Mouse.GetPosition(IInputElement ...

  2. WPF 获取鼠标屏幕位置、窗口位置、控件位置

    原文:WPF 获取鼠标屏幕位置.窗口位置.控件位置 public struct POINT{public int X;public int Y;public POINT(int x, int y){t ...

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

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

  4. html5 js获取鼠标坐标,js怎么获取鼠标在div中的相对位置

    大家在做网页的时候都可能会用到鼠标在div中的相对位置,那么怎么获取鼠标在div中的相对位置呢?下面由学习啦小编教大家怎么获取鼠标在div中的相对位置吧. 如何获取鼠标在div中的相对位置 代码如下: ...

  5. ubuntu 外接显示器设置 鼠标指针闪烁 屏幕缩放 相对位置设置 分辨率设置 -xrandr

    配置:通过 xrandr 直接查看 笔记本电脑 最高分辨率 2880x1800 外接的显示器 最高分辨率 1920x1200 场景:笔记本电脑外接显示器,左边为外接显示器,右边为笔记本电脑 #! /b ...

  6. Windows核心编程_获取鼠标指定位置的RGB颜色值

    Windows核心编程_获取鼠标指定位置的RGB颜色值 大家平常会见到很多屏幕取色工具,其原理都是获取鼠标位置的屏幕像素点颜色! 一般思路都是:获取鼠标位置,然后取出鼠标指向的屏幕像素点颜色! Get ...

  7. (一)MFC读取并显示一幅位图图像,并获取鼠标点击位置的像素坐标和灰度值(接上篇博客)

    上篇博客简要介绍了如何利用MFC读取并显示一幅位图图像,并获取鼠标点击位置的像素坐标和灰度值信息,主要包含了对话框的创建和添加程序,代码也在上一页中给了大家,但是并没有详细说明功能,所以在这一节当中主 ...

  8. (一)MFC读取并显示一幅位图图像,并获取鼠标点击位置的像素坐标和灰度值

    题目是老师布置的一道作业题,要求用C或C++完成,但不能用VTK/Opencv等软件包,经过很多摸索之后实现了该功能,后续可能还有其他功能要实现,所以先写一篇博客记录下,一方面是方便自己以后使用,另一 ...

  9. Unity UGUI获取鼠标在屏幕的准确点击位置

    想要获取鼠标在屏幕的准确点击位置,千万不要胡乱写,什么转化坐标系,什么Ray射线检测都是浮云. 1,转化坐标系只是相对而言,并不能准确实现当前鼠标点击在屏幕的位置: 2,Ray检测,hit是需要碰撞的 ...

最新文章

  1. word 语音识别的数据丢失
  2. 对于oracle varchar 的种种
  3. 【计算机网络】关于分组交换和电路交换及其时延的讨论
  4. 【控制】《多智能体系统的动力学分析与设计》徐光辉老师-第7章-不确定分数阶系统的多一致
  5. js保持div悬浮,不随页面向下滚动而被覆盖
  6. 第四十一期:一道经典的MySQL面试题,答案出现三次反转
  7. centos7桌面没有计算机图标,centos7下创建桌面图标的方法
  8. 网规之路——强化项目管理知识点训练
  9. 单点登陆_规避单点故障,MySQL 8.0 MGR软负载怎么选?
  10. 计算机矢量图的优点,矢量图与位图的区别,各自的优缺点……
  11. Python 正则表达式大全,值得收藏
  12. 《ShowYou数组代码》第38题:对数组元素进行排序
  13. 风云2号卫星云图_中国为什么要发这么多卫星?答案没有出乎意料
  14. 增长黑客手册——02
  15. 电脑公司特别版5.0的驱动集成方法
  16. 基于S3C2440丛SD卡启动WinCE(或其它程序)的实现
  17. 什么是僵死进程(Zombies)
  18. 除了爱你的人,这个世界没人会记得你
  19. 解决ASUS电脑重装系统导致键盘灯无法调节和ASUS Battery Health Charging变灰不能选择充电模式默认充电80%
  20. c语言最优树的构造,哈夫曼树的构造及编码 Haffman树的构造及其编码

热门文章

  1. 毕业设计出现的一个严重错误----文件不能相互引用
  2. asp.net Forums 之HttpHandler和HttpModule
  3. GraphPad Prism 9.3 MacOS 2021科研绘图统计 支持Monterey 安装使用教程
  4. GraphPad Prism 的统计显著性报告中*或**或**的含义是什么?
  5. Qt学习(五):TCP通信
  6. java同步锁实例_Java lock同步锁使用实例解析
  7. TortoiseSVN新人使用指南
  8. 使用gnuplot绘制直方图
  9. 黄仁勋登上《时代周刊》2021年度全球具影响力人物
  10. 【深度学习】一文搞定面试中的优化算法