VisualTreeHelper.GetChild(DependencyObject, Int32) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Usando l'indice fornito, ottiene un oggetto figlio specifico dell'oggetto fornito esaminando la struttura ad albero visuale.
public:
static DependencyObject ^ GetChild(DependencyObject ^ reference, int childIndex);
static DependencyObject GetChild(DependencyObject const& reference, int const& childIndex);
public static DependencyObject GetChild(DependencyObject reference, int childIndex);
function getChild(reference, childIndex)
Public Shared Function GetChild (reference As DependencyObject, childIndex As Integer) As DependencyObject
Parametri
- reference
- DependencyObject
Oggetto che contiene l'insieme figlio.
- childIndex
-
Int32
int
Indice dell'oggetto figlio richiesto nell'insieme figlio di riferimento .
Restituisce
Oggetto figlio a cui fa riferimento childIndex.
Esempio
Di seguito è riportato un esempio di funzione di utilità che può copiare un elenco di elementi figlio di un particolare tipo dall'interno di una struttura ad albero visuale. Usa i metodi di attraversamento di base GetChildrenCount e GetChild. Usa la ricorsione in modo che gli elementi possano essere trovati indipendentemente dal livello di annidamento all'interno di contenitori intermedi. Usa inoltre un metodo di estensione IsSubclassOf di System.Reflection che estende il confronto dei tipi per considerare i sottotipi come corrispondenza per un tipo.
internal static void FindChildren<T>(List<T> results, DependencyObject startNode)
where T : DependencyObject
{
int count = VisualTreeHelper.GetChildrenCount(startNode);
for (int i = 0; i < count; i++)
{
DependencyObject current = VisualTreeHelper.GetChild(startNode, i);
if ((current.GetType()).Equals(typeof(T)) || (current.GetType().GetTypeInfo().IsSubclassOf(typeof(T))))
{
T asType = (T)current;
results.Add(asType);
}
FindChildren<T>(results, current);
}
}