当前位置:网站首页>win10 uwp 改变鼠标
win10 uwp 改变鼠标
2022-08-09 16:53:00 【林德熙】
经常在应用需要修改光标,显示点击、显示输入,但是有些元素不是系统的,那么如何设置鼠标? 本文主要:UWP 设置光标,UWP 移动鼠标
设置光标
需要写一点代码来让程序比较容易看到,什么光标对于什么。
UWP 设置的光标有些看不懂,直接看不知道他是干什么
在xaml写代码:
<StackPanel>
<TextBlock Margin="10,10,10,10" Text="Hand" PointerEntered="button_OnPointerEntered"></TextBlock>
<TextBlock Margin="10,10,10,10" Text="Arrow" PointerEntered="button_OnPointerEntered"></TextBlock>
<TextBlock Margin="10,10,10,10" Text="Cross" PointerEntered="button_OnPointerEntered"></TextBlock>
<TextBlock Margin="10,10,10,10" Text="Help" PointerEntered="button_OnPointerEntered"></TextBlock>
<TextBlock Margin="10,10,10,10" Text="Beam" PointerEntered="button_OnPointerEntered"></TextBlock>
</StackPanel>代码写好了,他可以在鼠标移入TextBlock 进入函数,可以在函数修改UWP 鼠标光标
首先使用Windows.UI.Xaml.Window.Current.CoreWindow.PointerCursor 设置或获取光标。
需要设置光标需要用Windows.UI.Core.CoreCursor
他有一些比较多用的类型,下面是他们对于代码
- Hand 点击
- Arrow 正常
- Cross 十字
- Help 帮助
- Wait 等待
- Beam 输入
于是对应界面
private void button_OnPointerEntered(object sender, PointerRoutedEventArgs e)
{
string str = (sender as TextBlock)?.Text as string;
uint n = 1;
switch (str)
{
case "Hand":
Window.Current.CoreWindow.PointerCursor = new Windows.UI.Core.CoreCursor(Windows.UI.Core.CoreCursorType.Hand, n);
break;
case "Arrow": Window.Current.CoreWindow.PointerCursor = new Windows.UI.Core.CoreCursor(Windows.UI.Core.CoreCursorType.Arrow, n); break;
case "Cross": Window.Current.CoreWindow.PointerCursor = new Windows.UI.Core.CoreCursor(Windows.UI.Core.CoreCursorType.Cross, n); break;
case "Help": Window.Current.CoreWindow.PointerCursor = new Windows.UI.Core.CoreCursor(Windows.UI.Core.CoreCursorType.Help, n); break;
case "Beam": Window.Current.CoreWindow.PointerCursor = new Windows.UI.Core.CoreCursor(Windows.UI.Core.CoreCursorType.IBeam, n); break;
}
}试试把代码放到工程,可以看到UWP 光标改变。
如果不知道 n 是什么,我可以说,自定义光标就是使用n,但是复杂。
很少会有需要自己做光标。如果需要自己做,请看自定义光标
移动鼠标
有时候需要把鼠标移动到一个元素上,UWP 移动鼠标和改变光标一样。
移动鼠标,设置CoreWindow.PointerPosition
在界面放一个按钮,点击他,移动鼠标
var p = new Point(Window.Current.Bounds.X + Window.Current.Bounds.Width / 2, Window.Current.Bounds.Y + Window.Current.Bounds.Height / 2);
Window.Current.CoreWindow.PointerPosition = p;这样移动很简单,移动是屏幕坐标,不是应用坐标,需要对移动加上窗口移动
边栏推荐
- .NET Community Toolkit 8.0.0 版本发布
- [ Kitex Source Code Interpretation ] Request to retry
- Substrate 源码更新导读八月第1周: 新版事务化存储层启用默认模式, Polkadot v0.9.27发布
- EPIC是什么平台?
- Experience far more than Hue, this is the favorite SQL tool for technicians
- 郭炜(郭大侠):九个关于开源的 Yes or No
- 在 ASP.NET Core 中上传文件
- JMeter笔记6 | JMeter录制(配置代理)
- The difference between approach and method
- openEuler Xiong Wei: How do you view the SIG organization model in the open source community?
猜你喜欢

太细了!阿里大佬耗时39天整理出一份Redis进阶笔记,满满的干货

50道Redis面试题,来看看你会多少?

有什么好的开源自动化测试框架可以推荐?

Detailed explanation of JVM memory model and structure (five model diagrams)

方舟开服务器Vmware虚拟机安装不上?

在 .NET MAUI 中如何更好地自定义控件

如何在 PC 机上测试移动端的网页?

How to choose a good SaaS knowledge base tool?

Self-taught software testing, how far can I go out to find a job?

【时序数据库InfluxDB】Windows环境下配置InfluxDB+数据可视化,以及使用 C#进行简单操作的代码实例...
随机推荐
进行知识管理的好处有哪些?
Problems Existing in Hardware Development of Electronic Products
Tan Zhongyi: Do you know who the "Queen of Open Source" is?
Lagrange interpolation formula matlab implementation
AlphaControls 控件 TsPanel TsGroupBox 块与组的结合
uniapp电影购票选座系统源码
试试使用 Vitest 进行组件测试,确实很香。
一键生成 API 文档的妙招
Discuz!论坛程序安装+模板配置教程
Discuz! Forum program installation + template configuration tutorial
JMeter notes 6 | JMeter recording agent (configuration)
The most complete architect knowledge map in history
开篇-开启全新的.NET现代应用开发体验
面试中老生常谈的MySQL问答集锦夯实基础
记一次 .NET 某工控自动化控制系统 卡死分析
【工业数字化大讲堂 第二十一期】企业数字化能碳AI管控平台,特邀技术中心总经理 王勇老师分享,8月11日(周四)下午4点
Redis 定长队列的探索和实践
[ Kitex Source Code Interpretation ] Request to retry
浅谈如何保证Mysql主从一致
C#介绍及基本数据类型