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

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

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

https://blogs.msdn.microsoft.com/devfish/2012/08/01/customcursors-in-windows-8-csharp-metro-applications/


本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

最新文章

  1. SpringMvc静态资源加载出错
  2. BeginInvoke与EndInvoke方法解决多线程接收委托返回值问题
  3. java20 创建服务器:ServerSocket
  4. HDU 4622 多校第三场1002 后缀自动机
  5. 转:Hprose for php(二)——服务器
  6. 09-UIKit(UICollectionViewController、UITabBarController)
  7. 如何设置Java虚拟机内存以适应大程序的装载
  8. Angular - - angular.uppercase、angular.lowercase、angular.fromJson、angular.toJson
  9. Modelbuilder进阶教程
  10. 读书笔记 effective c++ Item4 确保对象被使用前进行初始化
  11. day12&lt;常见对象+&gt;
  12. ubuntu下安装无界面浏览器
  13. [Jenkins Git] 在Jenkins上拉代码总是失败,跑去本地看,提示输入用户名和密码,但是Jenkins上已经配置了正确的用户名和密码
  14. [转]java的异常处理最佳实践
  15. spring-boot(三) HowTo
  16. css3实现自适应的3行,左右行固定宽度,中间自适应,要求先渲染中间部分
  17. git版本控制工具基本用法讲解(转)
  18. java怎样获得JVM可能的总内存,最大内存,以及空暇内存?
  19. Hbase1.1.0.1配置集群
  20. python的pip的配置文件路径在哪里?如何修改pypi源?

热门文章

  1. 201521123080《Java程序设计》第8周学习总结
  2. 201521123051 《Java程序设计》第3周学习总结
  3. 201521123093 java 第一周总结
  4. 201521123040《Java程序设计》第1周学习总结
  5. Ubuntu下PHP MySQL环境搭建-upcoming-ChinaUnix博客
  6. 201521123042《Java程序设计》第13周学习总结
  7. Junit4学习(三)Junit运行流程
  8. .NetCore获取Json和Xml格式的配置信息
  9. java自然语言理解demo,源码分享(基于欧拉蜜)
  10. struts1.3学习