`
lindexi-gd
  • 浏览: 139560 次
社区版块
存档分类
最新评论

win10 uwp 改变鼠标

 
阅读更多

经常在应用需要修改光标,显示点击、显示输入,但是有些元素不是系统的,那么如何设置鼠标?

本文主要: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); 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;

这样移动很简单,移动是屏幕坐标,不是应用坐标,需要对移动加上窗口移动

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>
分享到:
评论

相关推荐

    为什么要升级到Win10系统?_1.docx

    现在,用户可以轻松进行鼠标操作,甚至有自动设置和一键安装选项,大大降低了安装门槛,使得更换系统变得更加简单。 3. **新功能特性:** Windows 10引入了许多吸引人的新功能,如: - **开始菜单的回归**:结合...

    Win32开发教程.zip

    3. **用户输入处理**:Win32 API通过消息机制来处理用户的键盘和鼠标输入。`GetMessage`用于从消息队列中获取消息,`TranslateMessage`和`DispatchMessage`分别用于翻译消息和分发消息到相应的窗口过程。 4. **文件...

    Windows 10编程:UWP Focus(N之3)

    在本篇中,我们将深入探讨Windows 10编程中的一个重要概念——通用Windows平台(UWP)的焦点管理,这是在创建高效且用户友好的应用程序时不可或缺的部分。标题“Windows 10编程:UWP Focus(N之3)”暗示了我们将...

    Win API的平台示例-main.rar Windows-universal-samples-main

    在“Windows-universal-samples-main”中,你会看到如何使用Win API来处理各种事件,比如鼠标点击、键盘输入和窗口状态改变。这些事件处理通常涉及窗口过程函数(WndProc),它接收并响应来自系统的消息。例如,WM_...

    Win8学用开始屏幕管理程序.docx

    随着Windows 8的发布,微软引入了一个全新的用户界面——Metro风格界面(现在称为Modern或UWP界面),取代了传统的开始菜单。这一改变使得Windows操作系统变得更加适合触摸屏设备,同时也为用户提供了一种全新的交互...

    win8实用技巧.docx

    - **触发方式**: 将鼠标移到屏幕右下角,或者使用 `Win + C` 快捷键。 - **功能**: 显示日期时间,提供搜索、共享、设置等功能。 #### 六、快速启动任务栏程序 - **快捷键**: 将常用程序固定到任务栏后,可以通过 `...

    DropDemo.zip

    在Windows 10操作系统中,开发一款通用应用程序(UWP,Universal Windows Platform)时,能够支持桌面环境下的拖放文件功能是一项重要的交互设计。"DropDemo.zip"中的项目显然是一个示例,旨在演示如何实现在桌面...

    经典蓝牙+ble蓝牙(低功耗蓝牙)客户端\服务端开发

    经典蓝牙是一种早期的蓝牙技术,主要用于音频流传输、数据交换等场景,如无线耳机、键盘和鼠标等。它的传输速度较高,但功耗相对较大。在Android平台上进行经典蓝牙的开发,通常涉及到以下几个关键知识点: 1. **...

    逼真的仿Vista效果的按钮控件

    4. **鼠标悬停和点击状态**:根据鼠标是否在按钮上以及是否按下,改变按钮的颜色和形状,以提供用户反馈。 5. **事件处理**:编写代码来响应按钮的Click、MouseEnter、MouseLeave等事件,以实现动态效果。 在提供...

    Window 消息大全使用详解[WindowMessage.rar]-精品源代码

    学习并熟练掌握窗口消息的使用,对于开发Windows应用程序至关重要,无论是传统的Win32编程,还是基于MFC、WPF或UWP的应用开发,都离不开这一基础。通过这份“Window消息大全使用详解”,开发者可以深入理解Windows...

    CrossWindow::laptop::mobile_phone:用C ++编写的跨平台系统抽象库,用于管理窗口和执行OS任务

    2. **事件处理**:CrossWindow抽象了跨平台的事件模型,包括鼠标点击、键盘输入、窗口大小改变等事件。开发者可以通过注册回调函数来处理这些事件,而无需关心底层事件处理机制的差异。 3. **图形渲染**:虽然...

Global site tag (gtag.js) - Google Analytics