2009-09-14 12 views

Répondre

10

Voulez-vous dire les enfants de StackPanel?

foreach (var child in stackPanel.Children) 
{ 
    //do something with child 
} 

Une solution plus générique qui fonctionnerait indépendamment du parent serait d'utiliser LogicalTreeHelper ou VisualTreeHelper, en fonction de quel arbre WPF que vous souhaitez parcourir:

foreach (var child in LogicalTreeHelper.GetChildren(stackPanel)) 
{ 
    //do something with child 
} 
+1

merci - je l'ai trouvé moi-même mais votre réponse est juste. ne pouvait pas le trouver car je cherchais "Articles"! – JohnIdol

+0

Bien que Kent soit correct à 100%, si vous modifiez des objets XAML directement dans votre code-behind, il est probable que vous n'utilisez pas la liaison de données là où vous devriez être. Pas toujours le cas cependant :) –

0

je pensais la même chose que Johnldol , puisque dans mon cas j'avais un enfant et je connaissais son type; Je n'ai pas voulu obscurcir mon code par une boucle inutile. Voici comment j'ai atteint le TextBlock dans le lien hypertexte:

 var looper = LogicalTreeHelper.GetChildren(objHyperlink).GetEnumerator(); 
     looper.MoveNext(); 
     TextBlock objTextBlock = (looper.Current as InlineUIContainer).Child as TextBlock; 
Questions connexes