Combobox WPF模板项和所选项

时间:2017-06-14 18:06:50

标签: c# wpf xaml

我尝试为组合框做一个模板。 ItemTemplate是好的,但不是所选的项目,如下所示:

enter image description here

我的代码:

                <ComboBox ItemsSource="{Binding CouleursList}" 
                      SelectedItem="{Binding SelectedCouleur}" 
                      Grid.Column="1" Grid.Row="2">
                <ComboBox.ItemContainerStyle>
                    <Style TargetType="{x:Type ComboBoxItem}">
                        <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
                    </Style>
                </ComboBox.ItemContainerStyle>
                <ComboBox.ItemTemplate>
                    <DataTemplate>
                        <Grid>
                            <Rectangle Stroke="Black" Margin="1" Height="15"
                                       HorizontalAlignment="Stretch">
                                <Rectangle.Fill>
                                    <SolidColorBrush Color="{Binding Path=., Converter={StaticResource ColorConverter}}"/>
                                </Rectangle.Fill>
                            </Rectangle>
                        </Grid>
                    </DataTemplate>
                </ComboBox.ItemTemplate>
            </ComboBox>

如果我给出一个固定的宽度,那么它可以工作,但矩形对齐到列表的左侧和中心

谢谢!

1 个答案:

答案 0 :(得分:0)

所选项目内容未显示在ComboBoxItem中,因此您的HorizontalContentAlignment样式设置器不会适用。

您可以在ComboBox本身设置该属性,但是:

<ComboBox 
    ItemsSource="{Binding CouleursList}" 
    SelectedItem="{Binding SelectedCouleur}"
    HorizontalContentAlignment="Stretch"