【问题标题】:Layout of ComboBox itemsComboBox 项目的布局
【发布时间】:2009-05-13 11:44:25
【问题描述】:

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

我想让星星正确对齐。我错过了什么?

【问题讨论】:

  • 当星星对齐时我也很享受。 ;-)

标签: c# .net wpf xaml


【解决方案1】:

我忘了说我已经定义了这个样式

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

【讨论】:

  • 啊当然——“拉伸”是组合框和列表框的常见问题。我希望 MS 将其设为默认值,因为 每个人 都会犯同样的错误(包括我自己)。
【解决方案2】:

“路径”对象是否具有“对齐”属性?也就是说,你能强制它与这个 XAML 对齐吗?

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

编辑

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

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

【讨论】:

  • 感谢您的帮助,但我已经找到了解决方案。看我的回答。
猜你喜欢
  • 1970-01-01
  • 2016-06-02
  • 1970-01-01
  • 1970-01-01
  • 2010-09-08
  • 2015-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多