2010-11-01 6 views

Répondre

1

Oui, c'est possible. Merci de nous montrer votre code afin que nous puissions mieux vous aider.

Ce que vous cherchez est probablement Reflection. Saviez-vous que vous pouvez toujours vérifier si un objet est d'un certain type avec l'opérateur is?

var tag = myDependencyObject.Tag; 
if(myDependencyObject is CheckBox) 
{ 
    //... 
} 
else if(myDependencyObject is TextBox) 
{ 
    //... 
} 

Pour détecter un changement de Tag-propriété, écoutez l'événement DependencyPropertyChanged comme ceci:

DependencyPropertyDescriptor prop = DependencyPropertyDescriptor.FromProperty(
    FrameworkElement.TagProperty, 
    typeof(FrameworkElement)); 

prop.AddValueChanged(aTaggedControl, this.YourEventHandlerMethod); 
+0

Ah oui ce n'est pas vraiment le problème. Je ne sais pas où attraper l'événement si un objet étiqueté a été ajouté. Je n'ai pas beaucoup de code, juste ajouté le TagVisualizer à mon layot ​​principal. – RoflcoptrException

+0

voir mon édition, HTH – Falcon

2

Vous pourriez faire un HitTest. Fondamentalement, vous obtenez le point par rapport à votre fenêtre et regardez quel élément de l'arbre visuel est touché. Aucun échantillon de code à portée de main, mais vous en trouverez beaucoup en utilisant HitTest et WPF sur google.

Questions connexes