2009-09-14 9 views

risposta

10

Intendi i figli di StackPanel?

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

Una soluzione più generica che avrebbe funzionato a prescindere dal genitore sarebbe quella di utilizzare LogicalTreeHelper o VisualTreeHelper, a seconda di quale albero WPF si desidera percorrere:

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

grazie - l'ho trovato ma la risposta è giusta. non riuscivo a trovarlo come stavo cercando "Articoli"! – JohnIdol

+0

Mentre Kent è corretto al 100%, se si stanno modificando gli oggetti XAML direttamente nel code-behind, è molto probabile che non si stia utilizzando il databinding. Non sempre il caso però :) –

0

ho pensato proprio come Johnldol , poiché nel mio caso ho avuto un figlio e conoscevo il suo tipo; Non volevo oscurare il mio codice con un loop inutile. Ecco come ho raggiunto TextBlock all'interno del collegamento ipertestuale:

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