基本码头/锚定造型

时间:2012-03-01 20:12:54

标签: c# wpf styles

我在C#中有一个WPF项目,我正在研究。我有一个TabPage,其中包含三个控件:2个文本框和一个datagridview。我希望根据父级的大小(它所在的标签页)将所有三个都放到页面上。

一个文本框应该在右侧(在另一个文本框中结束),最后一个文本框应该在整个底部。

GRID | textBox1的

--- TEXTBOX ---

我一直在试验Docking和Anchoring样式,但我不确定如何在页面上使用多个元素正确使用它们。

目前我有Textbox1 Dock.Right,Textbox2 Dock.Bottom。我希望剩余的DataGridView填充剩余的空间。但是,使用Dock.Fill只填充整个父窗体并重叠文本框。

我能正确地解决这个问题吗?我看到DockPanel上的东西有一个“LastChildFill”属性,但它似乎不适用于我(可能是错的?)。提前谢谢!

2 个答案:

答案 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:填充