【问题标题】:WPF ComboBox: Align selected value and/or drop down itemsWPF ComboBox:对齐所选值和/或下拉项目
【发布时间】:2016-01-08 19:36:56
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • @MethodMan: 不,关于How to center align combobox **selected item** in WPF 的线程 - 在组合框输入中,而不是在下拉列表中。
  • 我知道只需将值从 Center 更改为 Right 加油
  • @MethodMan:如果你在谈论那个公认的答案 - 它与ControlTemplate 混淆了,正如我在我的问题中有意提到的那样,我认为这是一个很长的机会。所以,我的问题是从一开始就制定的,所以它不是你所说的那个重复。

标签: c# .net wpf combobox right-align


【解决方案1】:

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

<ComboBox ... HorizontalContentAlignment="Right">

如果你想右对齐只下拉项目那么你需要改变HorizontalContentAlignmentComboBoxItem

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

【讨论】:

  • 由于某种原因,将HorizontalContentAlignment 设置为ComboBox 只是起到了作用:所选值和下拉项目都向右对齐。所以就我所见,没有必要更改ItemContainerStyle
  • 是的。更新了我的答案以反映这一点
  • 感谢您的澄清!并且为了进一步读者的完整性:如何仅右对齐所选值,但保持下拉项对齐?
  • 很棒的答案!非常感谢!
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    我遇到了右对齐选中项的问题,这样用户总能看到字符串的结尾。 我找到的最简单的解决方案如下

    <ComboBox ...>
        <ComboBox.ItemTemplate>
            <DataTemplate>
                <TextBlock HorizontalAlignment="Right" Text="{Binding textProp}" />
            </DataTemplate>
        </ComboBox.ItemTemplate>
    </ComboBox>
    

    【讨论】:

      猜你喜欢
      • 2020-03-13
      • 1970-01-01
      • 2011-02-02
      • 2019-05-06
      • 2017-06-01
      • 2011-01-14
      • 2011-04-19
      • 2012-10-14
      • 1970-01-01
      相关资源
      最近更新 更多