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

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

请帮忙

<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)

2 years ago

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

VerticalAlignment="Center"