WPF ComboBox:对齐所选值 and/or 下拉项
WPF ComboBox: Align selected value and/or drop down items
我有一个几乎默认的 WPF ComboBox:
最简单的对齐项目的方法是什么,例如,在组合框的输入 and/or 下拉列表中向右对齐 ?
我环顾四周,只发现了与控件模板混淆的解决方案,在我看来,对于这样一个简单的事情来说,这太遥远了。我无法相信我们可以做的对齐项目的更简单的解决方案。
更新:
由于 dkozl 的回答,我已经稍微重新表述了这个问题,以涵盖更广泛的案例,进一步的读者可能会体验到这个主题。
此外,它应该可以防止某些人试图将此问题作为重复问题关闭。
如果您想右对齐所选值和下拉项,那么针对ComboBox
设置HorizontalContentAlignment="Right"
就足够了
<ComboBox ... HorizontalContentAlignment="Right">
如果你想右对齐只下拉项目那么你需要改变ComboBoxItem
的HorizontalContentAlignment
<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>
我已经尝试了 dkozl 的回答中的两种方法,由于某种原因,针对我的 ComboBox
设置 HorizontalContentAlignment
足以与组合框输入和下拉列表中的正确项目对齐。
我遇到了将所选项目右对齐的问题,以便用户始终可以看到字符串的结尾。
我找到的最简单的解决方案如下
<ComboBox ...>
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock HorizontalAlignment="Right" Text="{Binding textProp}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
我有一个几乎默认的 WPF ComboBox:
最简单的对齐项目的方法是什么,例如,在组合框的输入 and/or 下拉列表中向右对齐 ?
我环顾四周,只发现了与控件模板混淆的解决方案,在我看来,对于这样一个简单的事情来说,这太遥远了。我无法相信我们可以做的对齐项目的更简单的解决方案。
更新: 由于 dkozl 的回答,我已经稍微重新表述了这个问题,以涵盖更广泛的案例,进一步的读者可能会体验到这个主题。
此外,它应该可以防止某些人试图将此问题作为重复问题关闭。
如果您想右对齐所选值和下拉项,那么针对ComboBox
设置HorizontalContentAlignment="Right"
就足够了
<ComboBox ... HorizontalContentAlignment="Right">
如果你想右对齐只下拉项目那么你需要改变ComboBoxItem
HorizontalContentAlignment
<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>
我已经尝试了 dkozl 的回答中的两种方法,由于某种原因,针对我的 ComboBox
设置 HorizontalContentAlignment
足以与组合框输入和下拉列表中的正确项目对齐。
我遇到了将所选项目右对齐的问题,以便用户始终可以看到字符串的结尾。 我找到的最简单的解决方案如下
<ComboBox ...>
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock HorizontalAlignment="Right" Text="{Binding textProp}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>