我在C#中有一个WPF项目,我正在研究。我有一个TabPage,其中包含三个控件:2个文本框和一个datagridview。我希望根据父级的大小(它所在的标签页)将所有三个都放到页面上。
一个文本框应该在右侧(在另一个文本框中结束),最后一个文本框应该在整个底部。
GRID | textBox1的
--- TEXTBOX ---
我一直在试验Docking和Anchoring样式,但我不确定如何在页面上使用多个元素正确使用它们。
目前我有Textbox1 Dock.Right,Textbox2 Dock.Bottom。我希望剩余的DataGridView填充剩余的空间。但是,使用Dock.Fill只填充整个父窗体并重叠文本框。
我能正确地解决这个问题吗?我看到DockPanel上的东西有一个“LastChildFill”属性,但它似乎不适用于我(可能是错的?)。提前谢谢!
答案 0 :(得分:3)
只需使用Grids
。
e.g。一个Grid
有两行,第一行包含另一个Grid
,有两列。
<Grid>
<Grid.RowDefinitions>
<RowDefinition /> <!-- Fill All -->
<RowDefinition Height="Auto" /> <!-- Fit to content -->
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<DataGrid Grid.Column="0" />
<TextBox Grid.Column="1" />
</Grid>
<TextBox Grid.Row="1" />
</Grid>
答案 1 :(得分:1)
DockPanel
并在控件上设置DockPanel.Dock
,如下所示:
TextBox1:正确
TextBox2:Bottom
DataGridView:填充