2

我在 WPF 中使用高精度的面向像素的图像程序时遇到了惊人的困难,并且开始怀疑Cursors.Cross光标热点不在其中心,正如您所期望的那样。

我正在使用16 倍的放大镜进行调试,并将鼠标设置为最低加速度。该代码基于CodeProject 中的 DrawTools

从放大镜捕获的图像

这与您在 Winforms 中获得的光标相同吗?如果是这样,我可以查看该光标的热点 - System.Windows.Input 中的Cursor类没有 HotSpot 属性。

更新

如果有人正在寻找解决方法,在我的情况下,我已经调用了一个委托来过滤这些点,这样我就可以实现对齐网格的行为。将点偏移 1 以进行补偿是微不足道的。这比创建自定义光标要容易得多,并且如果它的外观应该改变,我仍然使用股票光标。

4

1 回答 1

2

我有一个经验性的答案,是的,热点是偏移的。

我修改了程序,使其能够通过按键触发图形模式,因此您无需移动鼠标。

使用与上面快照相同的放大镜视图,只需按一个键更改模式即可在箭头和十字之间切换光标。

当我切换它时,它会绘制光标,使黑线居中于普通箭头光标的左上角。

箭头光标热点位于它指向的像素(不是黑色像素),所以是的,十字光标热点不在十字准线的中心!

于 2010-02-11T22:15:40.670 回答