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