我目前有一個用戶控件,其中包含具有特定X,Y座標的項目,並且這些點必須位於哪些範圍內有限制。在這種情況下,這些位置是0> X> 40和0> Y> 80(40×80)。我主持這些項目的控件是動態的,但具有基於窗口大小的特定長寬比。我需要將這些X & Y座標轉換爲用戶控件中的相對位置。任何幫助極大apprecaited!提前致謝!如果它很重要/有幫助,我使用Silverlight。翻譯X,Y座標
Q
翻譯X,Y座標
1
A
回答
4
您可以使用GeneralTransform來確定UIElement相對於容器的位置。這裏有一個片段:
/// <summary>
/// Gets the position of the specified element's top left corner, relative to the specified container.
/// </summary>
/// <param name="element"></param>
/// <param name="container"></param>
public static Point GetPosition(UIElement element, UIElement container)
{
if (element == null)
throw new ArgumentNullException("element");
if (container == null)
throw new ArgumentNullException("container");
var gt = element.TransformToVisual(container);
var position = gt.Transform(new Point(0, 0));
return position;
}
乾杯,亞歷克斯
爲空[編輯]其實,檢查 「集裝箱」 是不必要的 - TransformToVisual也將接受null作爲參數。 另一個問題:TransformToVisual將拋出一個ArgumentException例如當「元素」不可見時,當前不在可視樹等中。等等。 不幸的是,我找不到一種方法來確定TransformToVisual是否會在實際調用「元素」之前拋出該異常。所以我簡單地將對TransformToVisual的調用封裝在try-catch塊中,吞併了ArgumentException,因爲無論如何IMHO都是無用的。
相關問題
- 1. x和y翻譯
- 2. Raphael svg翻譯y軸座標
- 3. 在X,Y座標中翻譯經度和緯度
- 4. Java X Y座標
- 5. OpenGL翻譯 - 座標
- 6. SVG座標翻譯
- 7. 座標X Y繪製Android
- 8. (x,y)g.drawPolygon(p)的座標。
- 9. 商店X和Y座標
- 10. JavaFX-StackPane X,Y座標
- 11. Gnuplot座標軸x和y
- 12. 顯示X和Y座標?
- 13. x,y座標難度
- 14. 翻譯屏幕X/Y位置作出反應,本機地圖座標
- 15. 翻譯屏幕座標[x,y]到相機平移和傾斜角度
- 16. 數學(在WPF中):在翻譯之後獲取新的x,y座標
- 17. Mac OS X可可,在全局屏幕座標空間中翻轉Y座標
- 18. 座標翻譯問題
- 19. ImageMagick繪製翻譯座標
- 20. 翻譯地理座標
- 21. [幫助]:Three.js座標翻譯
- 22. 視野和座標翻譯
- 23. 標識python x,y數組中的x,y座標對
- 24. 光電鼠標和x-y座標
- 25. 從標準X,Y座標獲取等距網格座標
- 26. 拋物線的排序座標(x,y)y = ax^2 + bx + c x = x1,x2,x3,x4。根據y座標
- 27. Netbeans:獲得X和Y座標
- 28. 正則表達式X/Y座標
- 29. 使用x和y座標定位movieclip
- 30. WPF動態綁定X和Y座標