2012-11-04 121 views
1

如何檢查矩形對象是否位於畫布中的特定位置?我發現唯一的解決方案是通過畫布中的所有孩子,並檢查他們的位置是否匹配,但我認爲這不是一個好的解決方案。WPF Canvas在位置上是矩形

所以我需要像Canvas.IsRectangleAtPosition(Point x)這樣的東西,有沒有類似的東西?

如果不是,我該如何實現這種方法?

親切的問候

+0

你的意思是找到覆蓋某個位置的第一個孩子(或所有孩子)嗎? – Clemens

+0

多數民衆贊成在右邊:)只有一個矩形在一個位置,而不是兩個重疊,所以我只需要檢查,如果在某個位置有一個矩形 – dingoglotz

回答

2

爲了找到最頂部的UI元素(一個會獲得鼠標輸入),你可以簡單地調用InputHitTest

Point pos = ... 
Rectangle rect = canvas.InputHitTest(pos) as Rectangle; 

您也可以使用VisualTreeHelper.HitTest

Rectangle rect = VisualTreeHelper.HitTest(canvas, pos).VisualHit as Rectangle; 
+0

它似乎沒有幫助,如果我啓動程序,它來了到那一點,它說NullReferenceException的東西:/是否有解決方案,或者我可以檢查畫布中點的顏色(用戶看到的)? – dingoglotz

+0

你應該知道NullReferenceException來自哪裏。嘗試調試。 – Clemens