ItemsControl
концептуально это элемент управления, в котором находятся предметы.Попробуйте просто думать об этом элементе управления как о держателе для нуля или более объектов.
ItemsPresenter
немного сложнее объяснить, но это часть шаблона ItemsControl
, который будет определять, где размещаются элементывнутри.Шаблон вашего ItemsControl может быть чем угодно, скажем, Grid с красивыми картинками вокруг него, внутри этого шаблона вы поместите ItemsPresenter
там, где вы хотите, чтобы ваши элементы были, скажем, прямо в середине вашей сетки.(этот пример взят из msdn и упрощен для удобства чтения)
<Style TargetType="HeaderedItemsControl">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type HeaderedItemsControl}">
<Grid>
<Rectangle Stroke="Black" Fill="Red"/>
<ItemsPresenter Margin="2,0,0,0"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
ItemsPanel
- это панель (или контейнер), которая управляет макетом элементов в вашем ItemsControl,Поэтому, если вы хотите, чтобы ваши элементы, которые вы добавили в ItemsControl, отображались по горизонтали, тогда вашей панелью элементов может быть просто StackPanel со свойством Orientation, установленным на Horizontal.
Это все имеет смысл?