Как включить прокрутку влево-вправо в GridView в Windows Phone 8.1 WinRT?

#gridview #winrt-xaml #windows-phone-8.1

#просмотр сетки #winrt-xaml #windows-phone-8.1

Вопрос:

Я пытаюсь изменить ориентацию сетки по умолчанию вверх-вниз на влево-вправо. Только я не могу заставить работать ручную прокрутку, хотя вызов scrollIntoView из кода позади работает просто отлично. Вот подробности моего тестового проекта.

1) Файл >> Новый проект >> Приложение-концентратор (Windows Phone)

2) HubPage.xaml (Удален элемент управления Hub и заменен просто GridView)

     <Grid x:Name="LayoutRoot" DataContext="{Binding Groups[5]}">
    <GridView x:Name="GridView1" Margin="0,9.5,0,0"
              ItemsSource="{Binding Items}"
              SelectionMode="None"
              IsItemClickEnabled="True"
              ItemClick="ItemView_ItemClick"
              ScrollViewer.VerticalScrollBarVisibility="Visible"  
              ScrollViewer.HorizontalScrollBarVisibility="Visible">

        <GridView.ItemsPanel>
            <ItemsPanelTemplate>
                <ItemsWrapGrid  Orientation="Vertical"  
                                ScrollViewer.HorizontalScrollBarVisibility="Visible" 
                                ScrollViewer.VerticalScrollBarVisibility="Visible"/>
            </ItemsPanelTemplate>
        </GridView.ItemsPanel>

        <GridView.ItemTemplate>
            <DataTemplate>
                <Grid Margin="0,0,9.5,9.5" 
                      Background="{ThemeResource ListViewItemPlaceholderBackgroundThemeBrush}">
                    <Image Source="{Binding ImagePath}" 
                           Stretch="UniformToFill" 
                           AutomationProperties.Name="{Binding Title}" 
                           Height="200" 
                           Width="200"/>
                    <TextBlock Text="{Binding Title}" 
                               VerticalAlignment="Bottom" 
                               Margin="9.5,0,0,6.5" 
                               Style="{ThemeResource BaseTextBlockStyle}"/>
                </Grid>
            </DataTemplate>
        </GridView.ItemTemplate>

    </GridView>
</Grid>
  

3) HubPage.xaml.vb (изменение только в этом обработчике щелчков)

 Private Sub ItemView_ItemClick(sender As Object, e As ItemClickEventArgs)
    GridView1.ScrollIntoView(GridView1.Items.Last)
End Sub
  

Чего мне здесь не хватает?

Комментарии:

1. Попробуйте настроить ScrollViewer.VerticalScrollMode amp; ScrollViewer.HorizontalScrollMode свойства.

Ответ №1:

В GridView должно быть включено. Итак, в GridView вам также необходимо установить свойство HorizontalScrollMode.

 <GridView x:Name="GridView1" Margin="0,9.5,0,0"
          ItemsSource="{Binding Items}"
          SelectionMode="None"
          IsItemClickEnabled="True"
          ItemClick="ItemView_ItemClick"
          ScrollViewer.VerticalScrollBarVisibility="Visible"  
          ScrollViewer.HorizontalScrollBarVisibility="Visible"
          ScrollViewer.HorizontalScrollMode="Auto">

....

</GridView>