2010-11-04 13 views

Répondre

3

Je suppose que vous voulez dire que vous voulez savoir si elles se chevauchent dans la dimension Z?

Untested:

// requires System.Windows.Controls.Toolkit.dll 

using System.Windows.Controls.Primitives; 
// ... 

Rect? rect1 = myControl1.GetBoundsRelativeTo(someParentContainer); 
Rect? rect2 = myControl2.GetBoundsRelativeTo(someParentContainer); 

bool areIntersecting = rect1 != null && rect2 != null 
    && rect1.Value.Intersect(rect2.Value) != Rect.Empty; 
+0

Merci, pour votre réponse. Oui c'est ce que je cherche. Mais je ne peux pas utiliser de Toolkits, juste une telle exigence. Est-ce qu'en clair WPF je peux trouver quelque chose comme ça? – Evgeny

+1

@Evgeny, la boîte à outils est open source, vous trouverez l'implémentation de 'GetBoundsRelativeTo (...)' ici: http://silverlight.codeplex.com/SourceControl/changeset/view/56962#779713 – herzmeister

+0

J'ai exception : Le visuel spécifié et ce visuel ne partagent pas un ancêtre commun, donc il n'y a pas de transformation valide entre les deux visuels. – Evgeny

-1

Si vous êtes après un outil plutôt qu'une solution programmatique, snoop fait pour des applications WPF. Il vous montre une vue hiérarchique de la composition des contrôles dans votre application au moment de l'exécution. Jamais utilisé, mais Silverlight Spy semble être un équivalent Silverlight.

+1

Ah, je vous vois édité la question. Il est clair que vous le voulez par programme. Tant pis. – serg10