2010-05-08 46 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

相關問題