1

我的Grid布局有问题。我想要三行(第二行GridSplitter)的行为:

如果带有TextBoxis的行Collapsed,则DataGrid填充整个空间。
如果为 的行,则TextBox和共享空间。 如果设置在,则不展开。并填满他们的行。VisibleTextBoxDataGrid
TextTextBoxTextBoxHeight
TextBoxDataGrid

示例 xml:

<DockPanel>
    <StackPanel DockPanel.Dock="Top" Orientation="Horizontal">
        <CheckBox x:Name="ShowTextBox" Content="Show TextBox"/>
        <Button Content="Add text" Click="ButtonBase_OnClick"/>
    </StackPanel>
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
            <RowDefinition Height="5"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>

        <StackPanel Grid.Row="0" Background="Aqua">
            <DataGrid/>
        </StackPanel>

        <GridSplitter Grid.Row="1"
                      Height="5"
                      HorizontalAlignment="Stretch"
                      ResizeDirection="Rows"
                      Visibility="{Binding Path=IsChecked, ElementName=ShowTextBox, Converter={StaticResource BooleanToVisibilityConverter}}"/>

        <DockPanel Grid.Row="2"
                   Visibility="{Binding Path=IsChecked, ElementName=ShowTextBox, Converter={StaticResource BooleanToVisibilityConverter}}">
            <TextBox AcceptsReturn="True" x:Name="TextBox"
                     VerticalScrollBarVisibility="Visible"/>
        </DockPanel>
    </Grid>
</DockPanel>

问题1:当我更改HeightTextBox并设置它时CollapsedDataGrid不会填充空白空间。 我想扩展到整个区域。(1) 开始 (2) 问题
DataGrid

问题 2:
如果我不触摸TextBoxrowHeight并添加多行文本,TextBox则会展开Height. 如果之前更改HeightTextBox行,则不会出现问题。 (1) 开始 (2) 问题 (3) 目标

有什么建议么?

4

0 回答 0