我的Grid
布局有问题。我想要三行(第二行GridSplitter
)的行为:
如果带有TextBox
is的行Collapsed
,则DataGrid
填充整个空间。
如果为 的行,则TextBox
和共享空间。
如果设置在,则不展开。并填满他们的行。Visible
TextBox
DataGrid
Text
TextBox
TextBox
Height
TextBox
DataGrid
示例 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:当我更改Height
行TextBox
并设置它时Collapsed
,DataGrid
不会填充空白空间。
我想扩展到整个区域。
DataGrid
问题 2:
如果我不触摸TextBox
rowHeight
并添加多行文本,TextBox
则会展开Height
. 如果之前更改Height
了TextBox
行,则不会出现问题。
有什么建议么?