【问题标题】:Custom cursor for windows store appsWindows 商店应用程序的自定义光标
【发布时间】:2014-05-07 01:15:09
【问题描述】:

我想为 Windows 应用商店应用开发自定义光标。我遵循this 教程,效果很好。问题是 Windows 只允许光标大小为 32x32,我需要更大的光标。

我还尝试了可用的 WPF 代码 here,但我无法让 Microsoft.Win32.SafeHandles 用于我的 Store App 项目,因此它也不起作用...

所以我想在所有视觉元素之上有一个充满整个屏幕的透明画布。然后,我可以将鼠标光标设置为透明的(已经这样做了),然后使图像跟随光标位置,从而替换光标。

这个解决方案的问题是,现在画布捕获了所有的指向事件,而它们没有到达它下面的可视组件。我尝试将 PointerRoutedEventArgs.Handled 设置为 false,但它不起作用。

关于如何解决这个问题的任何想法,甚至是在 Windows 应用商店应用程序上拥有更大光标的另一种解决方案?

【问题讨论】:

    标签: c# windows-runtime windows-store-apps winrt-xaml


    【解决方案1】:

    我认为使用基于 UIElement 的光标的性能可能不够好,但如果你真的必须这样做 - 你应该这样做

    1. 在画布上设置IsHitTestVisible="False"
    2. 处理来自Window.Current 的输入事件
    3. 使用RenderTransform 移动光标,而不是在光标元素上设置Canvas.Left/Canvas.Top 以获得更好的性能。

    【讨论】:

    • 这会隐藏箭头吗?
    • 什么箭头?如果您指的是标准光标 - João 已经说过他可以正常工作(隐藏)。
    • 除非 WinRT 和 XAML 比 Silverlight 好很多——我总是发现这个解决方案不太理想。它并不可怕,但使用它时总感觉有些不对劲。
    • 感谢 Filip 的回答,效果很好。即使使用 Canvas.Left 和 Top,性能也很好;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-14
    • 1970-01-01
    相关资源
    最近更新 更多