J'ai actuellement un contrôle utilisateur qui contient des éléments qui ont une certaine coordonnée X, Y et il y a des limites à ce que ces points doivent être à l'intérieur. Dans ce cas, ces positions sont 0> X> 40 et 0> Y> 80 (40x80). Le contrôle dans lequel j'héberge ces éléments est dynamique mais a un certain ratio d'aspect basé sur la taille de la fenêtre. J'ai besoin de traduire ces coordonnées X & en emplacements relatifs dans le contrôle de l'utilisateur. Toute aide est grandement appréciée! Merci d'avance! Si cela compte/aide, j'utilise Silverlight.Traduction X, Coordonnée Y
1
A
Répondre
4
Vous pouvez utiliser GeneralTransform pour déterminer la position d'un UIElement par rapport à un conteneur. Voici un extrait:
/// <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;
}
Cheers, Alex
[EDIT] En fait, la vérification "conteneur" NULL est inutile - TransformToVisual également accepter null comme paramètre. Un autre problème: TransformToVisual va lancer une ArgumentException, par ex. quand "element" n'est pas visible, n'est pas actuellement dans l'arbre visuel, etc. Malheureusement, je n'ai pas trouvé de moyen de déterminer si TransformToVisual va lancer cette exception avant de l'appeler sur "element". Donc, j'ai simplement enveloppé les appels à TransformToVisual dans un bloc try-catch et avalé l'ArgumentException, parce que c'est tout à fait inutile à mon humble avis.
Questions connexes
- 1. Comment pouvez-vous calculer la coordonnée X/Y pour zoomer
- 2. Courbe bezier quadratique: coordonnée Y pour un X donné?
- 3. jQuery trouver ce qu'il y a à une coordonnée X/Y particulière?
- 4. x-y = x + ¬y + 1 problème
- 5. x, y = getPos() et (x, y) = getPos()
- 6. Étant donné une coordonnée x, y, je dois trouver tous les éléments html en dessous
- 7. Comment obtenir une coordonnée DOM [x, y] relative à la scrollbox?
- 8. Comment déterminer quel triangle d'un modèle est à la coordonnée de l'écran x, y?
- 9. Modifier l'image Coordonnée x et y sur le pointeur de la souris
- 10. Comment puis-je obtenir la coordonnée x, y pour un écran tactile?
- 11. Comment régler la coordonnée X du bouton sans changer: y, largeur, hauteur
- 12. comment spécifier la coordonnée x et y de textfield dans java?
- 13. Traduction des coordonnées X & Y de la souris en coordonnées 3D
- 14. prologue, test (X, Y, Z): - Y est X + Z
- 15. Lat/X/désire ardemment Y Coordonne
- 16. getElementFromPoint (x, y) - whaaaat?
- 17. Dessiner un objet dans opengl en fonction de la coordonnée x, y donnée par différents périphériques d'entrée
- 18. Comment obtenir des cellules (<td>) Coordonnée x et y dans une table à l'aide de jQuery?
- 19. (X, Y) dans une grille
- 20. Graphique 3D (x, y, z)
- 21. visualisation id, x, y, t
- 22. TimeZone par Coordonnée
- 23. Stockage d'objets pour la localisation par coordonnées x, y
- 24. Algorithme 2D Référentiel traduction
- 25. Comment obtenir Vue à partir des coordonnées X/Y
- 26. Optimize y = x * x dans le champ Galois arithmétique
- 27. Ligne x et y n-point d'interception/C++
- 28. IPHONE - détecter si un pointeur est à l'intérieur d'une coordonnée
- 29. groupes Java Matcher: Comprendre la différence entre "(: X | Y)" et "(X?) | (: Y)"
- 30. Comment implémenter (x pow y) dans java, où x, y sont doubles?