WPF:如何重新布局wrappanel?

时间:2010-06-25 08:38:51

标签: wpf wrappanel

我将WrapPanel放置在网格中并使用ToggleButtons动态填充 wrappanel所在行的高度是根据ToggleButtons组件中WrapPanel的数量计算的。

当我加载屏幕时,wrappanel中的项目没有正确布局。 但是,当我调整表单大小时,项目会正确显示。

是否有一种方法可以强制重新布置项目,就像调整表单大小时一样?

您可以在下面看到我的WPF代码:

<Grid x:Name="grdScreen">
    <Grid.RowDefinitions>
        <RowDefinition x:Name="rdToolBar" Height="21" />
        <RowDefinition />
    </Grid.RowDefinitions>
    <Grid Grid.Row="0">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="150" />
            <ColumnDefinition Width="150" />
            <ColumnDefinition />
        </Grid.ColumnDefinitions>
        <ToggleButton Grid.Column="0" Name="btnlegende" Margin="1,1,11,1" Click="btnlegende_Click" />
        <Button Grid.Column="1" Name="btnlayout" Margin="1" Click="btnlayout_Click" />
        <WrapPanel x:Name="pnlHeader" Grid.Column="2" />
    </Grid>
...
</Grid>

2 个答案:

答案 0 :(得分:0)

试试this.UpdateLayout();

答案 1 :(得分:0)

您可以调用InvalidateArrange()InvalidateMeasure()强制WPF重做相应的布局阶段。