我有一个Accordion,其内容的高度可以动态调整大小。我希望手风琴能够动态响应儿童项目的高度,但我很难做到这一点。动态调整打开的手风琴的大小
<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();
}
你要知道,如果我崩溃,然后重新打开手风琴,它需要的形状只是我想要的方式,但我想,当孩子调整大小以立即发生这种大小调整。
我无力地尝试通过添加一个调用Accordion和AccordionItem的UpdateLayout()的SizeChanged事件处理程序来解决此问题,但这没有任何视觉效果。我无法弄清楚在Accordion控件中适当调整大小的位置。有人有想法吗?
嗯,这听起来很有希望,但它似乎并没有解决问题。我可以看到你的XAML是什么样的吗? – 2010-05-14 23:04:22
我有一个datagrid内的数据网格,并在内部网格的sizechanged,我包括代码如上。让我试试按钮,然后回到你身边。 – Joshscorp 2010-05-18 00:49:29