2012-02-18 11 views
10

Właśnie zaczynam w rozwoju WinPhone i nie mogę się dowiedzieć, jak ustawić pionowy zwój. Na przykład zacząłem nową aplikację Pivot, a ten kod umożliwia użytkownikowi przewijanie w górę i d właścicielem aby wyświetlić wszystkie wpisy:Windows Phone Jak przewijać w pionie

<controls:PivotItem Header="Login"> 
    <!--Double line list with text wrapping--> 
    <ListBox x:Name="FirstListBox" Margin="0,0,-12,0" ItemsSource="{Binding Items}"> 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <StackPanel Margin="0,0,0,17" Width="432" Height="78"> 
        <TextBlock Text="{Binding LineOne}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}"/> 
        <TextBlock Text="{Binding LineTwo}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/> 
       </StackPanel> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
    </ListBox> 
</controls:PivotItem> 

Teraz gdy dodam swój własny przedmiot obrotu, z StackPanel z więcej przedmiotów niż można zobaczyć na ekranie w tym samym czasie, nie pozwoli mi przewijać, aby zobaczyć je wszystkie. Czego tu mi brakuje?

Dzięki.

Odpowiedz

23

Dodaj ScrollViewer nad StackPanel i sprawi, że będzie przewijany.

6

The ListBox w przykładowym kodzie dostarczonym przez wbudowaną funkcję przewijania. Jeśli jednak nie używasz czegoś, co ma już tę przewijaną funkcjonalność, musisz dodać ScrollViewer.

<controls:PivotItem Header="Example"> 
    <ScrollViewer Margin="12,0,12,0"> 
     <StackPanel> 
      <TextBlock Text="Example1" FontSize="150" /> 
      <TextBlock Text="Example2" FontSize="150" /> 
     </StackPanel> 
    </ScrollViewer> 
</controls:PivotItem> 
1

W formancie przestawnym, jeśli zawartość przepełnia stronę pionową, powinno być dostępne domyślne przewijanie w pionie.

Posiadałem podobną kontrolę z polem listy powiązanym z własnością. Posiadanie "listy" powinno automatycznie umożliwiać przewijanie.

Nie dodawaj przewijania za pomocą panelu stosów, ponieważ spowoduje to włączenie przewijania dla każdego elementu listy, którego nie chcesz.

<controls:PivotItem Header="all authors" Foreground="#FF0C388A"> 
      <Grid> 
       <ListBox Margin="0,0,-12,0" ItemsSource="{Binding AllAuthorsList}" Foreground="#FF0C388A"> 
        <ListBox.ItemTemplate> 
         <DataTemplate> 
           <StackPanel Margin="0,0,0,17" Width="432" Height="Auto"> 
            <TextBlock Tap="TextBlockAuthor_Tap" Text="{Binding}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}" Foreground="#FF0C388A"/> 
           </StackPanel> 
         </DataTemplate> 
        </ListBox.ItemTemplate> 
       </ListBox> 
      </Grid> 
     </controls:PivotItem>