2011-05-14 115 views
19

例如,请注意文本如何不在ComboBox的垂直中心。如何垂直居中ComboBox的内容?

enter image description here

这里是我的XAML:

<Window x:Class="_24HoursBook.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="450" Width="350" MinHeight="450" MinWidth="350"> 


    <Grid ShowGridLines="True"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="0.15*" /> 
      <RowDefinition /> 
     </Grid.RowDefinitions> 
     <Image Grid.Row="0" Stretch="Fill" Source="Image/topBarBg.png" /> 
     <StackPanel Orientation="Horizontal" Grid.Row="0">    
      <TextBlock Text="Platform" 
         Foreground="White" 
         FontFamily="Georgia" 
         FontSize="15" 
         Margin="10" 
         HorizontalAlignment="Center" 
         VerticalAlignment="Center"/> 
      <ComboBox x:Name="cmbPlatform" 
         Margin="10" 
         FontFamily="Georgia" 
         FontSize="15" 
         MinHeight="30" 
         MinWidth="140" 
         VerticalAlignment="Center"> 
       <ComboBoxItem>All Platforms</ComboBoxItem> 
       <ComboBoxItem>Playstation 3</ComboBoxItem> 
       <ComboBoxItem>XBox 360</ComboBoxItem> 
       <ComboBoxItem>Wii</ComboBoxItem> 
       <ComboBoxItem>PSP</ComboBoxItem> 
       <ComboBoxItem>DS</ComboBoxItem> 
      </ComboBox>    
     </StackPanel> 
     <Image Grid.Row="0" Source="Image/about.png" 
       Height="16" HorizontalAlignment="Right" 
       VerticalAlignment="Center" 
       Margin="0 0 10 0" /> 

     <ListView Grid.Row="1" Background="#343434"> 

     </ListView> 
    </Grid> 
</Window> 

我有点新的WPF,我从来没有真正做过从开始任何与它完成。我也很感激任何关于改善你可能会遇到的一些明显的新手错误的提示。

回答

40

VerticalContentAlignment="Center"添加到您的组合框中。

+0

我想显示组合框水平中心的列表项 – Meer 2016-03-30 09:59:24

2

你必须发挥它,但如果要我猜:

<ComboBox x:Name="cmbPlatform" 
        Margin="10" 
        FontFamily="Georgia" 
        FontSize="15" 
        MinHeight="30" 
        MinWidth="140" 
        VerticalAlignment="Center" 
        VerticalContentAlignment="Center"> 

尝试改变MinHeight="30"一个较小的数字。这可能是你让这个盒子比文字更大。文字以线为中心,但框较大。

+0

好吧,组合框是垂直居中,我同意。但我想将内容集中在组合框内。 – 2011-05-14 21:15:11

+0

将垂直对齐设置为ComboBoxItem的中心也不起作用。 – 2011-05-14 21:16:43

+0

@Sergio VerticalContentAlignment – Hogan 2011-05-14 21:23:24

3

如果我复制并粘贴代码,文本将在我的组合框的中心垂直对齐。您确定您的应用程序中没有设置适用于您的控件并将其实现的样式或模板吗?

编辑:没关系。其实我有一个风格在我的应用程序设置:

<Style TargetType="{x:Type ComboBox}"> 
     <Setter Property="VerticalContentAlignment" Value="Center" /> 
</Style> 

所以当我复制并粘贴在你的代码,它为我工作!