0

2 つの列を持つグリッド要素を含む WPF アプリケーションがあります。2 番目の列にもグリッド要素が含まれています。タイマーがあり、5 秒後に 2 番目のグリッドの表示が折りたたまれますが、最初の列のサイズは変更されません。

最初の列のサイズを自動的に変更することは可能です (2 番目のグリッドの可視性を折りたたみに設定した後、ウィンドウ全体に収まるようにするには?

-----------------------|
|               |      |
|               |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>
4

1 に答える 1

1

2 番目と 3 番目の列の定義を「自動」にしてから、グリッド スプリッターと 2 番目のグリッドに明示的な幅を設定します。次に、それらを折りたたむと、メイングリッドが必要に応じて動作します

于 2012-07-03T12:18:59.390 に答える