我的Grid
布局出了问题。我想有三行(第二行GridSplitter
)行为:
如果TextBox
的行为Collapsed
,则DataGrid
填充整个空格。
如果TextBox
行Visible
,则TextBox
和DataGrid
共享空格。
如果在Text
中设置了TextBox
,则TextBox
不会展开Height
。
TextBox
和DataGrid
填充了他们的行。
示例xaml:
<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
行Height
并添加多行文字,则TextBox
将展开Height
。如果先前更改了Height
行TextBox
,则不会出现任何问题。
有什么建议吗?