この記事は公開から4年以上経過しています。
WPF ComboBoxでコントロールより長い文字を表示した際に文字末尾を省略して「…」を表示する方法の備忘録。
問題
WPFのComboBoxではコントロールより長い文字が選択されていると、以下のように選択された文字が切り捨てられるため、例えば枝番など後続の文字が存在してもそれを一目で判断できないためヒューマンエラーなどの原因にもなりかねません。
対応
ComboBoxのItemTemplateでTextElement
にTextBlock.TextTrimming
プロパティを設定します。
<ComboBox>
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" TextTrimming="CharacterEllipsis" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
結果
以下の通り、表示しきれない文字の末尾に「…」が表示されることにより、省略の有無が一目で判断可能になりました。
省略が不要なとき:
省略が必要なとき:
参考ウェブサイトなど
-
Microsoft
How to: Enable Text Trimming -
stackoverflow
How to display too long text properly in WPF ComboBox
以上です。