Ответ 1
Добавьте VerticalContentAlignment="Center"
в свой список.
Например, обратите внимание, как текст не совсем в вертикальном центре ComboBox.
Здесь мой 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, и я никогда не делал ничего от начала до конца. Я также ценю любые советы по улучшению некоторых вопиющих ошибок новичка, которые вы могли бы поймать.
Добавьте VerticalContentAlignment="Center"
в свой список.
Если я скопирую и вставляю код, текст будет выровнен по вертикали в центре ComboBox для меня. Вы уверены, что у вас нет стиля или шаблона, установленных в приложении, которые применяются к вашим элементам управления и что это происходит?
EDIT: Nevermind. У меня на самом деле был стиль, настроенный в моем приложении:
<Style TargetType="{x:Type ComboBox}">
<Setter Property="VerticalContentAlignment" Value="Center" />
</Style>
Поэтому, когда я копировал и вставлял ваш код, он работал у меня!
Вам нужно поиграть с ним, но если бы мне пришлось угадать:
<ComboBox x:Name="cmbPlatform"
Margin="10"
FontFamily="Georgia"
FontSize="15"
MinHeight="30"
MinWidth="140"
VerticalAlignment="Center"
VerticalContentAlignment="Center">
Попробуйте изменить MinHeight="30"
на меньшее число. Возможно, вы делаете коробку больше, чем текст. Текст сосредоточен на линии, но поле больше.