Groupbox(WPF)中的文本框对齐

时间:2016-02-09 11:14:14

标签: wpf xaml

我在将文本框放入组合框(位于网格内)时遇到问题。由于groupbox只能包含一个子节点,因此我创建了一个网格来放置标签和文本框。问题是 - 在组框内创建的文本框根据组框内网格的第2列左对齐。我需要将文本框左对齐在主网格的第二列中。

我的xaml代码

 <Grid>
  <Grid.ColumnDefinitions>
     <ColumnDefinition Width="Auto"/>
     <ColumnDefinition Width="Auto"/>
  </Grid.ColumnDefinitions>
  <Grid.RowDefinitions>
     <RowDefinition Height="Auto"/>
     <RowDefinition Height="Auto"/>
     <RowDefinition Height="Auto"/>
     <RowDefinition Height="Auto"/>
     <RowDefinition Height="Auto"/>
     <RowDefinition Height="Auto"/>
     <RowDefinition Height="Auto"/>
     <RowDefinition Height="Auto"/>
     <RowDefinition Height="Auto"/>
     <RowDefinition Height="Auto"/>
     <RowDefinition Height="Auto"/>
  </Grid.RowDefinitions>
  <GroupBox Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2">
     <GroupBox.Header>
        <Label Content="Header"></Label>
     </GroupBox.Header>
     <Grid Grid.Row="0" Column="0">
        <Grid.RowDefinitions>
           <RowDefinition Height="Auto"/>
           <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
           <ColumnDefinition Width="Auto"/>
           <ColumnDefinition Width="Auto"/>
        </Grid.ColumnDefinitions>
        <Label Grid.Column="0"  Content="Label1:"/>
        <TextBox Grid.Column="1" />
        <Label Grid.Column="0" Grid.Row="1" Content="Label2:"/>
        <TextBox Grid.Row="1" Grid.Column="1"/>
     </Grid>
   </GroupBox>
</Grid>

此代码的输出

enter image description here

您可以在主网格的第1列中看到文本框。如果您查看图像,则该行下方有一个单选按钮,位于第二列。我需要将文本框与我在第二列中需要它们的单选按钮对齐。

2 个答案:

答案 0 :(得分:0)

Width="Auto"表示Column会自动占用宽度。

你需要使用这样的东西;

`<Grid.ColumnDefinitions>
     <ColumnDefinition Width="Auto"/>
     <ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>`

如果需要,请查看此ColumnWidths以获取进一步说明。

要将TextBoxes移至主Column中的下一个Grid,您需要将其从GroupBox中删除,然后将其添加到主Grid而是。您尚未发布整个XAML,因此很难进一步提供建议。

答案 1 :(得分:0)

Alighment

如果您的网格中只有两列,那么就在内部Grid的列定义之下:

       <Grid.ColumnDefinitions>
            <ColumnDefinition Width="50*"/>
            <ColumnDefinition Width="50*" />
        </Grid.ColumnDefinitions>

s您希望与必须位于主网格第二列的单选按钮对齐,然后对于ColSpan=2这将 完美 < /强>

  

Auto ColumnDefinition 的宽度设置为Grid时   将采用width中定义的Column元素,这样就可以了   你要删除的第一件事是你没有使用固定的Width   TextBoxes