J'ajoute dynamiquement des contrôles dans une grille. Je ne saurai pas combien et je ne connaîtrai pas la hiérarchie exacte. Ce que je veux faire est d'accéder à certains contrôles qui ont un type spécifique (Button par exemple) et d'instancier certaines propriétés. Quelle est la meilleure façon de procéder?WPF - moyen rapide d'obtenir l'arbre visuel
0
A
Répondre
1
Vous pouvez remplacer le style de bouton au niveau de la grille. Voici un exemple:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="144*" />
<RowDefinition Height="171*" />
</Grid.RowDefinitions>
<Grid.Resources>
<!-- Override all Buttons style that are childs of the grid -->
<Style TargetType="Button">
<Setter Property="Background" Value="LightBlue"/>
<Setter Property="FontSize" Value="20" />
</Style>
</Grid.Resources>
<Button Grid.Row="0">Button1</Button>
<Button Grid.Row="1">Button2</Button>
</Grid>
dans cet exemple tous les boutons placés à l'intérieur de la grille ont la taille d'arrière-plan et la police définie par le style défini dans les ressources du réseau. Editer: cela fonctionne pour les boutons de contrôles ajoutés au moment de l'exécution, le style sera appliqué à ces contrôles lorsqu'il est ajouté à la grille, et vous pouvez également définir les styles de façon systématique si vous le souhaitez et les ajouter aux ressources de la grille. être appliqué automatiquement.
0
Vous devrez parcourir VisualTree en utilisant VisualTreeHelper. Il ya quelques bons exemples de la façon d'obtenir les contrôles d'un specific type
La meilleure façon de le faire est probablement de ne pas le faire, et en utilisant un style à la place. –