如何防止TextBox在Grid内垂直拉伸

时间:2012-05-01 15:02:09

标签: wpf xaml

在下面的标记中,文本框垂直填充整个网格行,无论行的高度有多大。对于单行文本框,这看起来不太好。我需要它垂直居中,并且高度恰好足以适合当前字体。在文本框中设置高度属性有帮助,但我不想在字体更改时硬编码高度。

请帮助

    <Grid FocusManager.FocusedElement="{Binding ElementName=TitleBox}">
      <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="Auto" />
      </Grid.ColumnDefinitions>
      <TextBox Name="TitleBox"
               Text="{Binding Title, UpdateSourceTrigger=PropertyChanged}"
               Grid.Column="0" />
      <Button Command="{Binding CreateCommand}"
              IsDefault="True"
              Grid.Column="1">Create</Button>
    </Grid>

1 个答案:

答案 0 :(得分:7)

将文本框的VerticalAlignment设置为Center。默认值为Stretch,它解释了为什么它会拉伸以填充整个网格单元格:

VerticalAlignment="Center"