#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>