2

我有一个几乎默认的 WPF 组合框:

在此处输入图像描述

对齐项目的最简单方法是什么,例如,在组合框的输入和/或下拉列表中向右对齐?

我环顾四周,发现只有与控制模板混淆的解决方案,在我看来,这对于这样一个简单的事情来说太远了。我不敢相信没有更简单的解决方案可以对齐项目。

更新:由于 dkozl 的回答,我稍微重新制定了这个问题,以涵盖更多读者可能会在这个主题上遇到的更广泛的案例。

此外,它应该防止某些人试图将这个问题作为重复来关闭。

4

3 回答 3

9

如果您想右对齐所选值和下拉项目,那么设置HorizontalContentAlignment="Right"反对ComboBox就足够了

<ComboBox ... HorizontalContentAlignment="Right">

如果您只想右对齐下拉项目HorizontalContentAlignment,那么您需要更改ComboBoxItem

<ComboBox>
    <ComboBox.ItemContainerStyle>
        <Style TargetType="{x:Type ComboBoxItem}">
            <Setter Property="HorizontalContentAlignment" Value="Right"/>
        </Style>
    </ComboBox.ItemContainerStyle>
</ComboBox>

并仅右对齐两者的选定值组合

<ComboBox ... HorizontalContentAlignment="Right">
    <ComboBox.ItemContainerStyle>
        <Style TargetType="{x:Type ComboBoxItem}">
            <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
        </Style>
    </ComboBox.ItemContainerStyle>
</ComboBox>
于 2016-01-08T19:41:41.233 回答
0

我已经从 dkozl 的回答中尝试了这两种方法,并且出于某种原因,HorizontalContentAlignment针对我ComboBox的设置足以与组合框的输入和下拉菜单中的正确项目对齐。

于 2016-01-08T21:17:35.953 回答
0

我遇到了在右侧对齐所选项目的问题,以便用户始终可以看到字符串的结尾。我发现的最简单的解决方案如下

<ComboBox ...>
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <TextBlock HorizontalAlignment="Right" Text="{Binding textProp}" />
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>
于 2021-11-26T12:23:00.803 回答