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



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

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

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

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

编辑:刚刚意识到当点击(即选中(poi时,即使在未选中poi之前,光标也会变为一只手。这不好,因为我希望光标在悬停在poi上时动态更改,并在移开时恢复到光标。

将光标悬停在地图元素上时更改指针光标

恐怕您无法编辑map元素的默认光标,因为它在内部进行了处理,所以不会被触发,即使您有侦听PointerEntered事件,它也会被控件消耗,而不会传递到控制链上。如果你确实想要这个功能,更好的方法是在windows feed backhub应用程序中发布这个功能。

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

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

以及由于各种条件引起的类似的变化和行为。然而,这给我带来了一个小问题:每当你在控件上移动时,这个语句都会更改鼠标图形,但就我个人而言,在Windows设置中,我使用鼠标的轨迹图形功能(每当我在屏幕上移动鼠标时,都会留下指针的轨迹(,我建议你禁用这个功能,或者更好的是,它会隐藏它,因为它";重新创建";鼠标图形为你在控件上的每一次移动,因此它";撤消";鼠标的图形,并将其重新创建为一只手(在我的例子中(。不过,如果它与你无关,它也很好用。我重复一遍:我在WinForms上使用这个,但由于它是C#,我想它会起作用(?(

最新更新