Search code examples
wpfcomboboxtexttrimming

How to display too long text properly in WPF ComboBox


I have a ComboBox that shows text of various lengths. For texts that are not long there is not a problem. For the texts longer than the width of ComboBox I would like to trim the text and add "..." (an ellipsis) at the end to show them properly. The bottom line is that I don't want to change the width of the ComboBox. Does anyone know how to do this?


Solution

  • Use a custom ItemTemplate for your ComboBox, which makes use of a TextBlock with the TextTrimming property set to CharacterEllipsis.

    Example:

    <ComboBox ItemsSource="..." SelectedValuePath="...">
      <ComboBox.ItemTemplate>
        <DataTemplate>
          <TextBlock 
            Text="{Binding ...}" 
            TextTrimming="CharacterEllipsis" />
        </DataTemplate>
      </ComboBox.ItemTemplate>
    </ComboBox>