经常在应用需要修改光标,显示点击、显示输入,但是有些元素不是系统的,那么如何设置鼠标?
本文主要:UWP 设置光标,UWP 移动鼠标
<!--more-->
设置光标
需要写一点代码来让程序比较容易看到,什么光标对于什么。
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)
case "Cross": Window.Current.CoreWindow.PointerCursor = new Windows.UI.Core.CoreCursor(Windows.UI.Core.CoreCursorType.Cross, n)
case "Help": Window.Current.CoreWindow.PointerCursor = new Windows.UI.Core.CoreCursor(Windows.UI.Core.CoreCursorType.Help, n)
case "Beam": Window.Current.CoreWindow.PointerCursor = new Windows.UI.Core.CoreCursor(Windows.UI.Core.CoreCursorType.IBeam, n)
}
}
试试把代码放到工程,可以看到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
这样移动很简单,移动是屏幕坐标,不是应用坐标,需要对移动加上窗口移动
https://blogs.msdn.microsoft.com/devfish/2012/08/01/customcursors-in-windows-8-csharp-metro-applications/
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
分享到:
相关推荐
现在,用户可以轻松进行鼠标操作,甚至有自动设置和一键安装选项,大大降低了安装门槛,使得更换系统变得更加简单。 3. **新功能特性:** Windows 10引入了许多吸引人的新功能,如: - **开始菜单的回归**:结合...
3. **用户输入处理**:Win32 API通过消息机制来处理用户的键盘和鼠标输入。`GetMessage`用于从消息队列中获取消息,`TranslateMessage`和`DispatchMessage`分别用于翻译消息和分发消息到相应的窗口过程。 4. **文件...
在本篇中,我们将深入探讨Windows 10编程中的一个重要概念——通用Windows平台(UWP)的焦点管理,这是在创建高效且用户友好的应用程序时不可或缺的部分。标题“Windows 10编程:UWP Focus(N之3)”暗示了我们将...
在“Windows-universal-samples-main”中,你会看到如何使用Win API来处理各种事件,比如鼠标点击、键盘输入和窗口状态改变。这些事件处理通常涉及窗口过程函数(WndProc),它接收并响应来自系统的消息。例如,WM_...
随着Windows 8的发布,微软引入了一个全新的用户界面——Metro风格界面(现在称为Modern或UWP界面),取代了传统的开始菜单。这一改变使得Windows操作系统变得更加适合触摸屏设备,同时也为用户提供了一种全新的交互...
- **触发方式**: 将鼠标移到屏幕右下角,或者使用 `Win + C` 快捷键。 - **功能**: 显示日期时间,提供搜索、共享、设置等功能。 #### 六、快速启动任务栏程序 - **快捷键**: 将常用程序固定到任务栏后,可以通过 `...
在Windows 10操作系统中,开发一款通用应用程序(UWP,Universal Windows Platform)时,能够支持桌面环境下的拖放文件功能是一项重要的交互设计。"DropDemo.zip"中的项目显然是一个示例,旨在演示如何实现在桌面...
经典蓝牙是一种早期的蓝牙技术,主要用于音频流传输、数据交换等场景,如无线耳机、键盘和鼠标等。它的传输速度较高,但功耗相对较大。在Android平台上进行经典蓝牙的开发,通常涉及到以下几个关键知识点: 1. **...
4. **鼠标悬停和点击状态**:根据鼠标是否在按钮上以及是否按下,改变按钮的颜色和形状,以提供用户反馈。 5. **事件处理**:编写代码来响应按钮的Click、MouseEnter、MouseLeave等事件,以实现动态效果。 在提供...
学习并熟练掌握窗口消息的使用,对于开发Windows应用程序至关重要,无论是传统的Win32编程,还是基于MFC、WPF或UWP的应用开发,都离不开这一基础。通过这份“Window消息大全使用详解”,开发者可以深入理解Windows...
2. **事件处理**:CrossWindow抽象了跨平台的事件模型,包括鼠标点击、键盘输入、窗口大小改变等事件。开发者可以通过注册回调函数来处理这些事件,而无需关心底层事件处理机制的差异。 3. **图形渲染**:虽然...