2010-05-08 95 views
3

我在玩一个简单的WPF应用程序。它的一部分包括一个包含多个控件的网格。网格使用LayoutTransform和RotateTransform进行旋转。我需要获取相对于网格左上角的鼠标单击的坐标,并考虑旋转角度。如何获取转换的WPF控件上鼠标点击的坐标?

需要明确的是,让我们说我有网格内单一绘图表面没有变换已被应用。然后,我点击位置X = 20,Y = 10,并在该位置绘制一个点。如果网格现在旋转了30度,并且我点击了点(它也被旋转移动),则点击位置仍然应该是X = 20,Y = 10。

回答

5

MouseEventArgs有一个GetPosition方法一个UIElement。它返回鼠标事件相对于指定元素的位置。因此,如果要将鼠标单击转换为网格坐标,请将该网格传递给GetPosition方法。

+0

完美!我实际上使用MouseDown,但MouseButtonEventArgs也有该方法。当然,我以前尝试过,但我的大脑一定是在自动驾驶仪上。非常感谢。 – BlackWasp 2010-05-09 18:53:54

+0

...也许我正在旋转网格中的东西并检查网格。这将是一件愚蠢的事。 – BlackWasp 2010-05-09 18:54:27

相关问题