2

我正在尝试自定义我在组合框中显示的内容。我拥有的组合框定义的来源如下:

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

结果是这个图像:

具有值的组合框

当我单击组合框时会出现问题,我看到的是:

组合框选择

有没有办法解决这个问题?

4

1 回答 1

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>
于 2013-06-10T01:02:30.333 回答