WPF:Textblock 作为 ComboBox 中的项目:如何将 Textblock 的文本垂直居中?

WPF: Textblock as item in ComboBox: how to center the text of Textblock vertically?

我使用 WPF 4.5、Caliburn Micro 2、VS2013。我使用 TextBlock 作为 ComboBox 中的项目。

ComboBox的高度为80

TextBlock 的高度为 50。

TextBlock 中的文本字体大小是标准的。

我的以下示例 xaml 代码有效,但它显示的文本在 TextBlock 中未垂直居中。 如何使文本垂直居中with/without将TextBlock的高度更改为自动?提前谢谢。

<ComboBox Width="150"
          Height="80"
          VerticalContentAlignment="Center"
          ItemsSource="{Binding Path=Locations}"
          SelectedIndex="0"
          SelectedItem="{Binding Path=SelectedLocation,
                                 Mode=OneWayToSource}">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Height="50"
                       HorizontalAlignment="Stretch"
                       VerticalAlignment="Center"
                       Background="Aquamarine"
                       Text="{Binding Path=Address}" />
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>

这是屏幕截图:

文本对齐="center" 或者你可以在每一边都使用边距。

TextBlock 不应有高度,但其容器应有。如果您想为您的 TextBlock 设置背景颜色,请将您的 TextBlock 包裹在 Border 或 Grid 中并设置它们的高度。

喜欢

<Grid Height="50>
     <TextBlock VerticalAlignment="Center" Text....../>
</Grid>