C# 自定义鼠标光标大小(WPF)

C# 自定义鼠标光标大小(WPF),c#,.net,wpf,kinect,mouse-cursor,C#,.net,Wpf,Kinect,Mouse Cursor,我们正在开发一个应用程序,该应用程序必须由那些在使用kinect移动光标时可能存在视觉问题的人使用,因此我们需要使其比平常更大。但是,该应用程序不直接与kinect接口,因此我们不能使用其API 我们正在使用WPF在C#(.NET4.5)中编程。问题在于,在高分辨率设备中,默认光标大小不能大于32x32像素或64x64像素 我们首先尝试使实际的鼠标光标不可见,然后使用图形对象,使用Graphics.FromHwnd(applicationWindowHandler)获取。它成功地绘制了图像,但留

我们正在开发一个应用程序,该应用程序必须由那些在使用kinect移动光标时可能存在视觉问题的人使用,因此我们需要使其比平常更大。但是,该应用程序不直接与kinect接口,因此我们不能使用其API

我们正在使用WPF在C#(.NET4.5)中编程。问题在于,在高分辨率设备中,默认光标大小不能大于32x32像素或64x64像素

我们首先尝试使实际的鼠标光标不可见,然后使用图形对象,使用Graphics.FromHwnd(applicationWindowHandler)获取。它成功地绘制了图像,但留下了过去光标位置的轨迹

有没有一种方法可以使用常规的windows鼠标光标,或者至少有一种方法可以删除轨迹(比如强制当前窗口刷新的“invalidate”方法)

我们已经尝试过这些解决方案,但没有成功:


您是否可以使用覆盖整个窗口的画布控件,将光标设置为“无”,然后在画布中放置一个带有适当大的光标图像的图像控件,并将其左侧和顶部属性绑定到光标相对于画布的X和Y坐标??

是否使用cursor=“无”或ForceCursor=“无”?如果我使用其中一个,我看不到任何痕迹。如果“图标”实际上是鼠标光标,你看不到任何痕迹。但不能使其大于32x32或64x64。如果您使用从主WPF窗口中获取的图形对象来绘制遵循鼠标坐标的自定义图像(隐藏真实的鼠标光标),那么您可能会遇到一些问题,我们尝试过,但存在两个主要问题:1-在主窗口中,我们只使用相对位置(画布,afaik,使用绝对定位),2-一旦我们将整个内容包装在画布中,每个子组件似乎都会放大,就像一个奇怪的缩放效果(这很奇怪),但为什么要将所有内容包装在画布中呢?为什么不创建一个网格,将您的内容放在其中,然后是画布(也在网格中),放在最后,或者给它一个较高的grid.ZIndex值,以便它始终呈现在您的内容之上。内容不必在画布上,画布只需在它前面。第二:为什么不使用绝对位置作为图像的位置,而使用相对位置作为其余位置?我们尝试了您的解决方案,效果也很好,但我们选择使用Uwe建议的教程,因为直接替换鼠标光标可以减少延迟,并使性能稍好一些!但无论如何,谢谢你,你的评论真的帮助了我们:)