2013-06-09 2 views
2

Я пытаюсь настроить содержимое, отображаемое внутри combobox. Источник, который у меня есть является следующее для определения поля со списком:Выравнивание сетки внутри выбора ComboBox

<ComboBox 
x:Name="ServicesComboBox" 
Margin="36,220,36,0" 
VerticalAlignment="Top" 
SelectionChanged="ComboBox_SelectionChanged" 
ItemTemplate="{StaticResource MetricService}" 
BorderBrush="#CC000000"> 

ItemTemplate Я использую следующее:

<UserControl.Resources> 
    <DataTemplate x:Key="MetricService"> 
     <Grid> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="Auto"/> 
       <ColumnDefinition Width="*"/> 
       <ColumnDefinition Width="Auto"/> 
      </Grid.ColumnDefinitions> 
      <TextBlock Text="{Binding MetricsName}" FontSize="16"/> 
      <TextBlock Text="{Binding MetricsProvider}" Foreground="#FF878787" 
         FontSize="16" Grid.Column="2" HorizontalAlignment="Right"/> 
     </Grid> 
    </DataTemplate> 
</UserControl.Resources> 

результата этого изображение:

Combobox with value

Проблема возникает, когда я нажимаю на поле со списком, и я вижу следующее:

Combobox selection

Есть ли способ решить это?

ответ

2

Вы должны установить HorizontalContentAlignment пунктов Протянуть так:

<ComboBox x:Name="ServicesComboBox" 
      Margin="36,220,36,0" 
      VerticalAlignment="Top" 
      BorderBrush="#CC000000" 
      SelectionChanged="ComboBox_SelectionChanged" 
      ItemTemplate="{StaticResource MetricService}"> 
    <ComboBox.ItemContainerStyle> 
     <Style TargetType="ComboBoxItem"> 
      <Setter Property="HorizontalContentAlignment" Value="Stretch" /> 
     </Style> 
    </ComboBox.ItemContainerStyle> 
</ComboBox> 
Смежные вопросы