自动调整WPF网格列的大小

时间:2012-07-03 11:31:03

标签: wpf grid

我有一个WPF应用程序,它包含有两列的网格元素。 第二列还包含网格元素。 我有一个计时器,5秒后第二个网格的可见性变为折叠,但第一列没有调整大小。

可以自动调整第一列的大小(在将第二个网格的可见性设置为折叠后适合整个窗口?

-----------------------|
|               |      |
|               |grid2 |
|               |      |
|               |      |
|--------------------- |


<Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="5"/>
            <ColumnDefinition Width="200"/>
        </Grid.ColumnDefinitions>


        <!-- Browser -->
        <my:WebControl Visibility="{Binding IsIEVisible,Converter={StaticResource BoolToVisibleconverter}}" Grid.Column="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Name="webControl1">

        </my:WebControl>

        <GridSplitter Visibility="{Binding isVisiblePult, Converter={StaticResource BoolToVisibleconverter}}" HorizontalAlignment="Center" VerticalAlignment="Stretch" Width="5" Grid.RowSpan="2" Grid.Column="1"/>

        <Grid Visibility="{Binding isVisiblePult, Converter={StaticResource BoolToVisibleconverter}}" Grid.Column="2">
            <Grid.RowDefinitions>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
            <ListBox x:Name="ListChannels" Grid.Row="1" SelectedItem="{Binding SelectedChannel}" ItemsSource="{Binding Channels}" FontSize="14" Background="#FFD4ECFF">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <TextBlock FontSize="17" Text="{Binding Name}"/>
                    </DataTemplate>
                </ListBox.ItemTemplate>

            </ListBox>
        </Grid>

1 个答案:

答案 0 :(得分:1)

将第二列和第三列定义设置为“Auto”,然后在网格分割器和第二个Grid上设置显式宽度。然后,当您折叠它们时,主网格将按您的要求运行