2013-11-09 2 views
0

У меня есть следующий XAML, который производит вертикальный вывод нескольких TextBlocks и ListBoxes, однако я хочу изменить его так, чтобы он шел по горизонтали.WPF ItemsControl layout issue

<StackPanel> 
    <TextBlock Margin="5" Text="Collated Results" FontWeight="Bold" 
       VerticalAlignment="Center" DockPanel.Dock="Top"/> 
    <ScrollViewer VerticalScrollBarVisibility="Auto" 
        HorizontalScrollBarVisibility="Auto" CanContentScroll="True"> 
     <ItemsControl x:Name="lstCollatedSensorData"> 
      <ItemsControl.ItemTemplate> 
       <DataTemplate>           
        <StackPanel> 
         <TextBlock Margin="5" Width="100" Text="{Binding Name}"/> 
         <ListBox Margin="5" Width="100" 
           ItemsSource="{Binding CollatedResults}"/> 
        </StackPanel> 
       </DataTemplate> 
      </ItemsControl.ItemTemplate> 
     </ItemsControl> 
    </ScrollViewer> 
</StackPanel> 

текстовое поле и Listbox в StackPanel показывают правильно индивидуально, однако, каждая итерация помещается поверх друг друга, где я хочу, чтобы они были расположены бок о бок по горизонтали. Я пробовал вставлять WrapPanels в разных местах без успеха, поэтому, очевидно, что-то мне не хватает. Похоже, что ScrollViewer заставляет ItemsControl быть вертикальным, а не горизонтальным.

+1

Это уже ответил [здесь] [1]. [1]: http://stackoverflow.com/questions/1052342/itemscontrol-with-horizontal-orientation – arpl

+0

Замените '' с ' ' –

ответ

1

Помещенный StackPanel с горизонтальной ориентацией в ItemsControl «s ItemsPanel

<ItemsControl.ItemsPanel> 
     <ItemsPanelTemplate> 
      <StackPanel Orientation="Horizontal"/> 
    </ItemsPanelTemplate> 
</ItemsControl.ItemsPanel> 
+0

Это сработало отлично, спасибо большое. – XN16

0

Попробуйте установить Ориентация на StackPanel как так

StackPanel Ориентация = "Горизонтальный"

+0

Что StackPanel работает нормально. –

+0

Пожалуйста, посмотрите, что я выделил в Bold (а не в стеке) –