You can can customize an ItemsControl, or any of the controls that derive from it (ComboBox, DataGrid, ListBox, TabControl, TreeView et al), in a number of ways. The various customization mechanisms are summarized below.
- Set Style to apply a set of property values for the main control
- Set Template to change the control template of the control.
- This changing the highest level of the control (e.g. for a ListBox, a Border wrapping a ScrollViewer, in turn wrapping an ItemsPresenter)
- Set ItemsPanel to change the panel used to lay out the individual items
- E.g. User horizontally oriented StackPanel to lay out ListBox items horizontally, rather than vertically
- Set ItemContainerStyle to set properties that apply to the container for each item
- E.g. Properties that apply to each ListBoxItem within a ListBox
- Set ItemTemplate to change the data template used to render each item in the list
- E.g. Create a custom layout for each item in a ListBox
Read more: 2,000 Things You Should Know About WPF