2013-08-07 9 views
9

Mam ItemsControl, zbudowałem elementy, które wyświetlam w nim (views:DisplayGroupView) w taki sposób, że będą się one rozciągać w poziomie, aby pokazać całą ich zawartość a nie w pionie (tylko przy użyciu dostępnego wysokość)Przewijanie w ItemControl przy użyciu poziomego StackPanel jako ItemsPanel

zmieniłem ItemsPanel z ItemsControl użyć StackPanel z Orientation="Horizontal"

Układ mądry jest idealny, ale bez względu na to, co robię, nie mogę go dostać przewijać w poziomie, dzięki czemu widzę wszystko.

Jest to XAML dla ItemsControl:

<ItemsControl ItemsSource="{Binding DisplayGroups}" Grid.Row="1" Margin="120,20,120,20" VerticalContentAlignment="Stretch"> 
     <ItemsControl.ItemsPanel> 
      <ItemsPanelTemplate > 
       <StackPanel Orientation="Horizontal" ScrollViewer.HorizontalScrollMode="Enabled" ScrollViewer.HorizontalScrollBarVisibility="Visible"/> 
      </ItemsPanelTemplate> 
     </ItemsControl.ItemsPanel> 

     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <views:DisplayGroupView Margin="0,0,20,0" DataContext="{Binding}" VerticalAlignment="Stretch"></views:DisplayGroupView> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ItemsControl> 

Stanowi to wszystko się dobrze, ale nie będzie się przewijać. Próbowałem zostały również zmiany szablonu ItemsControls dołączyć ScrollViewer, ale to tylko stosy rzeczy pionie:

  <ItemsControl.Template> 
       <ControlTemplate> 
        <ScrollViewer x:Name="ScrollViewer" Padding="{TemplateBinding Padding}" VerticalContentAlignment="Stretch" ScrollViewer.HorizontalScrollMode="Enabled" ScrollViewer.VerticalScrollMode="Disabled"> 
         <ItemsPresenter VerticalAlignment="Stretch"/> 
        </ScrollViewer> 
       </ControlTemplate> 
      </ItemsControl.Template> 

Jak mogę dostać układ poziomy, a jednocześnie jest w stanie przewinąć?

+0

Czy próbowałeś wyciągnąć go z szablonu i sam go osadzić? Podobnie jak , brzmi głupio, wiem, ale wart strzał. –

+0

@ChrisW. Kiedy to robię, ItemsControl wykorzystuje więcej pionowej przestrzeni i nie układa się tak, jak chcę. Nawet z PhonicUK

+0

@ChrisW. W końcu udało mi się to za pomocą twojej sugestii, po prostu przyjąłem trochę korekty z wyrównaniami. Jeśli chcesz zamieścić to jako odpowiedź, przyjmuję to :) – PhonicUK

Odpowiedz

8

Jeśli wyciągniesz go z ItemsControl i sam go osadzisz, z jakiegoś powodu, który często działa jako obejście, więc coś takiego;

<ScrollViewer VerticalScrollBarVisibilty="Disabled" HorizontalScrollBarVisibility="Auto"> 
    <ItemsControl/> 
</ScrollViewer> 
Powiązane problemy