2012-04-01 3 views
0

Я создаю приложение WP7 с помощью элемента управления Panorama. Я довольно новичок в WP7, поэтому я могу пропустить что-то простое. Мой элемент управления Panorama привязан к ViewModel, и элементы PanoramaItems добавляются во время выполнения, когда свойство этой ViewModel заполняется данными через запрос веб-службы. Я хотел бы иметь раздел в верхней части каждого объекта PanoramaItem, который содержит кнопку обновления и т. Д.Как по умолчанию положение прокрутки в ScrollViewer/ListBox в WP7

Я могу добавить элемент в начало ListBox, используя стиль, но я хотел бы иметь этот элемент прокручивается сверху, пока пользователь не вытащит его. Есть ли способ установить позицию прокрутки по умолчанию в стиле или в шаблоне? Я прочитал несколько примеров прокрутки к определенному элементу, когда есть данные с помощью listBox.ScrollToItem, но это не сработало в моем тестовом приложении или не получило дескриптор ScrollViewer и с помощью ScrollToVerticalOffset.

<phone:PhoneApplicationPage.Resources> 
    <Style x:Key="StoryStyle" TargetType="ListBox"> 
     <Setter Property="Background" Value="Transparent"/> 
     <Setter Property="Foreground" Value="{StaticResource PhoneForegroundBrush}"/> 
     <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled"/> 
     <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/> 
     <Setter Property="BorderThickness" Value="0"/> 
     <Setter Property="BorderBrush" Value="Transparent"/> 
     <Setter Property="Padding" Value="0"/> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="ListBox"> 
        <ScrollViewer x:Name="ScrollViewer" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Foreground="{TemplateBinding Foreground}" Padding="{TemplateBinding Padding}"> 
         <StackPanel> 
          <Button Content="Refresh"></Button> 
          <ItemsPresenter/> 
         </StackPanel> 
        </ScrollViewer> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
</phone:PhoneApplicationPage.Resources> 

<Grid x:Name="LayoutRoot" Background="Transparent"> 
    <controls:Panorama ItemsSource="{Binding Programs}" x:Name="AllPrograms"> 
     <controls:Panorama.Title> 
      <TextBlock></TextBlock> 
     </controls:Panorama.Title> 
     <controls:Panorama.HeaderTemplate> 
      <DataTemplate> 
       <TextBlock Text="{Binding Title}" /> 
      </DataTemplate> 
     </controls:Panorama.HeaderTemplate> 
     <controls:Panorama.ItemTemplate> 
      <DataTemplate> 
       <ListBox Margin="0,0,-12,0" ItemsSource="{Binding Stories}" Style="{StaticResource StoryStyle}"> 

       <ListBox.ItemTemplate> 
        <DataTemplate> 
         <StackPanel Margin="0,0,0,17" Width="432" Height="80"> 
           <TextBlock Text="{Binding SensibleTitle}" TextWrapping="Wrap" /> 
           <TextBlock><Run Text="{Binding Duration, StringFormat='hh\\:mm\\:ss'}"></Run><Run Text=", "/><Run Text="{Binding DisplayDate, StringFormat='MMMM dd, yyyy'}"/></TextBlock> 
         </StackPanel> 
        </DataTemplate> 
       </ListBox.ItemTemplate> 
      </ListBox> 
      </DataTemplate> 
     </controls:Panorama.ItemTemplate> 
    </controls:Panorama> 
</Grid> 

ответ

0

Попробуйте изменить SelectedIndex для ListBox.

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