2009-06-15 8 views
2

Comment déterminer le type d'élément dans WPF par programmation?Détermination du type d'élément WPF

Par exemple, mon XAML est composé de zone de texte, boutons radio, combos, zones de liste, etc.

En cas de charge, que je veux faire quelque chose en rapport avec les contrôles. (Say pour tous textbox,

la couleur de premier plan sera rouge, pour toutes les étiquettes la couleur de fond sera verte).

quelque chose de ce genre.

donc je dois parcourir la liste complète des contrôles présents dans le XAML et ensuite à

écrire la logique spécifique de contrôle.

Est-ce en utilisant l'élément Framework?

Veuillez indiquer le code en C#. Par exemple s'il vous plaît prendre 3/4 contrôles de votre choix.

Je cherche aussi dans google!

Merci à l'avance

+0

Essayez d'utiliser typeof()? – TimothyP

Répondre

5

Si vous ne disposez que d'un nombre fini de types à vérifier, essayez de lancer l'opération en utilisant l'opérateur "as", puis en vérifiant la valeur null.

Button button = control as Button; 
if (button != null) 
{ 
    // this is a button) 
} 
... 

L'opérateur as ne lancera pas d'exception si la distribution ne peut pas être effectuée. EDIT: Si vous essayez seulement d'obtenir le style des commandes, vous devez regarder l'étiquette <Style/>.

Voir here un bon exemple

+0

pouvez-vous s'il vous plaît donner un code complet dire avec 3/4 contrôles et comment obtenir le même à partir d'une collection. Signifie que mon xaml est constitué de zone de texte, de boutons radio, de conbo, de listes, etc. Dans l'événement de chargement, disons que je veux faire quelque chose en rapport avec les contrôles. Donc, je dois parcourir la liste entière des contrôles et ensuite écrire la logique spécifique au contrôle –

3

GetType() devrait fonctionner si vous avez une référence au contrôle/type.

+0

pouvez-vous s'il vous plaît donner un code complet dire avec 3/4 contrôles et comment obtenir le même d'une collection. Signifie que mon xaml est constitué de zone de texte, de boutons radio, de conbo, de listes, etc. Dans l'événement de chargement, disons que je veux faire quelque chose en rapport avec les contrôles. Donc je dois faire une boucle sur toute la liste des contrôles et ensuite écrire la logique spécifique au contrôle –

8

Vous pouvez utiliser:

if (element is Grid) 
{ 
} 
else if (element is Label) 
... 
+0

pouvez-vous s'il vous plaît donner un code complet dire avec 3/4 contrôles et comment obtenir le même à partir d'une collection. Signifie que mon xaml est constitué de zone de texte, de boutons radio, de zones de liste, etc. Dans l'événement de chargement, disons que je veux faire quelque chose en rapport avec les commandes. Je dois donc parcourir toute la liste des contrôles et ensuite écrire la logique spécifique au contrôle. –

Questions connexes