Bonjour,
Je suis un grand débutant en XAML, donc soyez indulgents sur mon code.
Je suis en train de faire l'interface graphique d'un jeu d'échec. Lors de la suppression d'une pièce (donc dans mon code un Grid contenu dans un Canvas), j'ai besoin de parcourir tout les grid à la recherche de celui dont les coordonnées correspondent aux coordonnées de la case sur laquelle se trouve la pièce.
J'aurai aimé pouvoir faire quelquechose comme ca :
Mais Visual Studio m'annonce une erreur comme quoi la classe Grid ne contient pas de définition publique pour IEnumerator.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 foreach(Canvas c in MainGrid) // MainGrid est le Grid principal { //code }
Pour information la structure de mon XAML est comme suit :
J'ai vu sur ce forum, un sujet qui aurait pu m'intéresser pour parcourir un arbre XAML et en fonction du type d'élément faire une action (ici tester si c'est un Canvas, et, si le Canvas est bien celui que je cherche, faire les modifications nécessaires), mais je ne sais pas comment l'utiliser. Voici le lien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <Grid Name="MainGrid" Height="410" Width="410" Margin="234,26"> <Image source="C:\Users\name\Pictures\board.jpg"/> // Une pièce <Canvas Width="40" Height="40" Name="unking"> <Grid AllowDrop="True" Canvas.Left="-150" Canvas.Top="-350" Width="40" Height="40"> <Image Source="C:\...\wking.bmp"/> </Grid> </Canvas> // Les autres pièces à la suite déclarées de la même facon </Grid>
http://www.developpez.net/forums/d57...rs-arbre-xaml/
Vu sous un autre angle mon problème pourrait se résumer à cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 foreach(Canvas c in /* Que mettre ici ? */) { if (c.GetType()==typeof(Canvas)) { MessageBox.Show(c.GetType().ToString()); } }
S'il existe une solution simple, je suis preneur.
Si vous avez besoin de plus de détails n'hésitez pas.
Cordialement,
Christophe
Partager