0

MouseEventArgs.GetPosition()我通过调用我的边界控制获得浮点值,例如 (471, 326.723333333333) 。虽然我总是可以手动对数字进行四舍五入,但我想知道是否有某种设置可以获取整数。

我认为SnapsToDevicePixels在我的边境控制上设置为 True 会有所帮助,但它没有,因为它可能无关。

有任何想法吗?

谢谢!

4

3 回答 3

4

在 WPF 中,您将始终以浮点值返回定位。如果要对其进行舍入,则需要手动执行此操作。

这是由于分辨率独立性,并且是设计使然。

于 2009-08-12T15:14:03.123 回答
0

由于 WPF 是独立于设备的,并且并非所有设备都共享相同的像素大小,因此通过带有小数坐标的 MouseEvents 是有意义的(您也可以将控件放在 3D 空间中,其中整个坐标系转换不会发生在整数像素值的情况下)。

SnapsToDevicePixels 只是一个属性,它控制控件的显示方式,并且边缘和直线最好位于完整的像素上,而不是介于两者之间。它与鼠标事件的处理方式无关(您也注意到了)。

作为一般的经验法则,WPF 中的所有内容都以double值来衡量,所以要么接受它(你的检查可能无论如何都是一样的),或者int如果你愿意的话继续四舍五入:-)

于 2009-08-12T15:16:11.763 回答
0

从鼠标定位是连续的。显示器上的定位是离散的。你得到的坐标值比你需要的要好,四舍五入总是会给你最接近的像素。基本上,圆它,不用担心它。

于 2009-08-12T15:16:12.183 回答