J'ai un accordéon et la hauteur de son contenu peut être redimensionnée dynamiquement. Je voudrais voir l'accordéon répondre dynamiquement à la taille de l'objet enfant, mais j'ai du mal à le faire.Redimensionnement dynamique d'un accordéon ouvert
<lt:Accordion Name="MyAccordion"
SelectionMode="ZeroOrOne"
HorizontalAlignment="Stretch">
<lt:AccordionItem Name="MyAccordionItem"
Header="MyAccordion"
IsSelected="True"
HorizontalContentAlignment="Stretch"
VerticalAlignment="Stretch">
<StackPanel>
<Button Content="Grow" Click="Grow"/>
<Button Content="Shrink" Click="Shrink"/>
<TextBox Name="GrowTextBox"
Text="GrowTextBox"
Height="400"
Background="Green"
SizeChanged="GrowTextBox_SizeChanged"/>
</StackPanel>
</lt:AccordionItem>
</lt:Accordion>
private void Grow(object sender, System.Windows.RoutedEventArgs e)
{
GrowTextBox.Height += 100;
}
private void Shrink(object sender, System.Windows.RoutedEventArgs e)
{
GrowTextBox.Height -= 100;
}
private void GrowTextBox_SizeChanged(object sender, System.Windows.SizeChangedEventArgs e)
{
MyAccordion.UpdateLayout();
MyAccordionItem.UpdateLayout();
}
Rappelez-vous, si j'effondre puis rouvrez l'accordéon, il prend forme juste la façon dont je veux, mais j'aimerais ce Redimensionnement de se produire immédiatement lorsque l'enfant est redimensionnée.
J'ai tenté de résoudre ce problème en ajoutant un gestionnaire d'événements SizeChanged qui appelle UpdateLayout() sur Accordion et AccordionItem, mais cela n'a aucun effet visuel. Je ne peux pas déterminer où le redimensionnement a lieu à l'intérieur du contrôle accordéon. est-ce que quelqu'un a une idée?
Hmm, cela semble prometteur mais cela ne semble pas résoudre le problème. Puis-je voir à quoi ressemble votre XAML? –
J'ai un datagrid dans une grille de données, et sur sizechanged de la grille intérieure, j'ai inclus le code derrière comme ci-dessus. Laissez-moi essayer sur les boutons et revenir à vous. – Joshscorp