ComboBox项目的布局

时间:2009-05-13 11:44:26

标签: c# .net wpf xaml

我有ComboBox项目样式如下(简化):

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="35"/>
    </Grid.ColumnDefinitions>

            <TextBlock Grid.Column="0" />
            <Path Grid.Column="1" Style={StaticResource StarStyle}/>
</Grid>

结果如预期。我列表中的项目如下所示:

alt text http://robbertdam.nl/share/p1.png

当我选择那个项目时。它看起来像这样:

alt text http://robbertdam.nl/share/p2.png

我希望星星对齐。我错过了什么?

2 个答案:

答案 0 :(得分:2)

我忘了提到我已经定义了这个样式

        <Style x:Key="ComboItemsStyle" TargetType="{x:Type ComboBoxItem}">
            <Setter Property="HorizontalContentAlignment" Value="Stretch" />
        </Style>

将此样式分配给我的ComboBox解决了这个问题:

        <Style x:Key="ComboStyle" TargetType="{x:Type ComboBox}">
            <Setter Property="HorizontalContentAlignment" Value="Stretch" />
        </Style>

答案 1 :(得分:1)

“Path”对象是否具有“Align”属性?也就是说,你可以强制它与这个XAML对齐吗?

<Path Grid.Column="1" Align="Right" Style={StaticResource StarStyle}/>

修改

不,它没有。在这种情况下,我建议将路径嵌入到可以对齐它的容器中。也许:

<DockPanel Grid.Column="1">
    <Path DockPanel.Dock="Right" Style={StaticResource StarStyle}/>
</DockPanel>