ComboBox选择中的网格对齐

时间:2013-06-09 22:33:25

标签: xaml windows-runtime

我正在尝试自定义组合框内显示的内容。对于组合框定义,我的来源如下:

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

我正在使用的项目模板如下:

<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

有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

您需要将项目的Horizo​​ntalContentAlignment设置为Stretch,如下所示:

<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>