2015-04-30 2 views
3

У меня есть приложение MVVM WPF с элементами управления элементами. На количество горизонтальных дочерних элементов влияет ширина элементов. Есть только одна вещь, которую я не решил. Я пытаюсь выровнять дочерние элементы таким образом, чтобы они всегда были центрированы. Я сделал быстрые снимки в краске, чтобы продемонстрировать, что я имею в виду.WPF itemscontrol дочернее выравнивание

Как это теперь: Itemscontrol image layout fault

Если ширина дополнительно inceares то элемент далее будет добавлен в горизонтальном направлении. Эта функция должна оставаться.

Как я хотел бы видеть его: Itemscontrol image layout wish

Если есть достаточно места для четвертого пункта, а затем он должен быть добавлен. Я думаю, что ответ может быть простым свойством XAML. У кого-нибудь есть идея?

+0

Вы можете разместить XAML –

ответ

4

Поместите ItemsControl в сетке и установить его HorizontalAlignment в Center:

<Grid> 
    <ItemsControl ItemsSource="{Binding Images}" HorizontalAlignment="Center"> 
     <ItemsControl.ItemsPanel> 
      <ItemsPanelTemplate> 
       <WrapPanel Orientation="Horizontal"/> 
      </ItemsPanelTemplate> 
     </ItemsControl.ItemsPanel> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <Image Source="{Binding}" .../> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ItemsControl> 
</Grid> 
+0

Ах спасибо. Я действительно пропустил первый элемент ItemsControl.Template. Теперь он работает! – RolandMakkelie

+1

На самом деле вам даже не нужно устанавливать ControlTemplate. Просто установите HorizontalAlignment непосредственно в ItemsControl. – Clemens

Смежные вопросы