Comment obtenir ListBox ItemsPanel dans le code derrière
J'ai une ListBox avec un ItemsPanel
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<StackPanel x:Name="ThumbListStack" Orientation="Horizontal" />
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
Je suis désireux de déplacer la Pile du Panneau le long de l'axe X à l'aide d'un TranslateTransform dans le code derrière.
Problème est, je ne peux pas trouver la Pile du Panneau.
ThumbListBox.FindName("ThumbListStack")
Ne retourne rien.
Je veux l'utiliser dans:
Storyboard.SetTarget(x, ThumbListBox.FindName("ThumbListStack"))
Comment puis-je obtenir la Pile du Panneau, donc je peux l'utiliser ensuite avec la TranslateTransform
Grâce
source d'informationauteur Ben
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le
Loaded
événement pour leStackPanel
qui est dans leItemsPanelTemplate
Et puis dans le code derrière
Une autre façon est de parcourir l'Arborescence Visuelle et de trouver la
StackPanel
qui sera le premier enfant de laItemsPresenter
.désolé, je viens de remarquer que j'ai oublié d'enregistrer les modifications...je me rends compte que vous avez déjà accepté une réponse, mais il semble de plus d'un hack pour moi. Voici ma mise en œuvre de FindChild, vous pouvez l'utiliser pour l'avenir ou si vous allez faire cela souvent.
Il vérifie tous les enfants et les enfants des enfants de comparer le type et le Nom du jeu sur le contrôle. L'utiliser comme ceci:
Essayer en suivant la méthode d'extension:
Méthode elle-même:
PS: Vous pouvez vous-même l'étendre à d'vérifiez que le nom de contrôle méthode serait de retour unique de contrôle au lieu de la liste.