【问题标题】:Change pointer cursor when hovering over map elements将鼠标悬停在地图元素上时更改指针光标
【发布时间】:2021-04-10 05:20:36
【问题描述】:

我的 UWP 应用程序包含一个带有多个 POI 的地图。当悬停在特定的 poi 上以指示其可点击时,我试图将鼠标光标从箭头更改为手。

这将在光标进入地图后立即更改光标,作为一个简单的测试,我为地图控件添加了一个 PointerEntered 事件,其中我有以下内容来更改光标:

 Window.Current.CoreWindow.PointerCursor = new Windows.UI.Core.CoreCursor(Windows.UI.Core.CoreCursorType.Hand, 0);

虽然光标确实发生了变化,但它会立即被覆盖回指针光标。

编辑:刚刚意识到当一个 poi 被点击(即被选中)时,即使没有在地图控件上,光标也会变成一只手,直到 poi 未被选中。不好,因为我希望光标在悬停在 poi 上时动态更改,并在移开时恢复为光标。

【问题讨论】:

    标签: c# uwp uwp-xaml uwp-maps


    【解决方案1】:

    鼠标悬停在地图元素上时改变指针光标

    恐怕你不能编辑地图元素的默认光标,因为它已经在内部处理了,所以它不会被触发,即使你已经监听了PointerEntered事件,它被控件消耗并且没有传递控件链。如果您确实想要此功能,更好的方法是使用 windows feed backhub 应用程序发布此功能。

    【讨论】:

      【解决方案2】:

      我不知道它是否像 WinForms 一样工作,我必须做这样的事情才能点击标签(不能使用链接标签),我使用的是标签的 Mouse_Move 事件,它是基本上

      if (Cursor.Current == Cursors.Default)
      {
          Cursor.Current = Cursors.Hand;
      }
      

      以及由于各种条件而导致的类似变化和行为。然而,这给我带来了一个小问题:只要您在控件上移动,此语句就会更改鼠标图形,但在 Windows 设置中,我个人使用鼠标的轨迹图形功能(每当我在屏幕上移动鼠标时都会留下指针轨迹) ,我建议您禁用此功能,或者更好的是,它隐藏它,因为它为您在控件上所做的每一步“重新创建”鼠标图形,因此它“撤消”鼠标的图形并将其重新创建为手(以我为例)。如果它不关心你,它工作得很好。 只是我重复一下自己:我在 WinForms 上使用它,但由于它是 C#,我想它会工作(?)

      【讨论】:

      • 添加了一个检查,就像您在示例中所做的那样,但不幸的是,与我在上面的示例中已经看到的行为没有区别。
      猜你喜欢
      • 2019-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-27
      • 1970-01-01
      • 2012-09-22
      相关资源
      最近更新 更多