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>
我使用 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>