簡體   English   中英

WPF ComboBox:對齊選定的值和/或下拉項

[英]WPF ComboBox: Align selected value and/or drop down items

我有一個幾乎默認的 WPF ComboBox:

在此處輸入圖片說明

例如,在組合框的輸入和/或下拉菜單中對齊項目的最簡單方法是什么

我環顧四周,發現只有與控制模板混淆的解決方案,在我看來,這對於這么簡單的事情來說太遠了。 我不敢相信沒有更簡單的解決方案可以用來對齊項目。

更新:我稍微重新表述了這個問題,以涵蓋更多讀者可能會在這個主題上遇到的更廣泛的案例,因為多虧了 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 ...>
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <TextBlock HorizontalAlignment="Right" Text="{Binding textProp}" />
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM