Я хочу, чтобы содержимое моего GridView прокручивалось при запуске раскадровки.Сейчас раскадровка нацелена на сетку, а не на контент.Как мне сделать это для прокрутки внутри вида сетки?
Вот так выглядят мои раскадровки и шаблоны данных:
<Page.Resources
<Storyboard x:Key="CarouselStoryboard">
<DoubleAnimation
Storyboard.TargetName="CarouselTransform"
Storyboard.TargetProperty="X"/>
</Storyboard>
<DataTemplate x:Key="CatTemplate">
<Grid>
<StackPanel Margin="30,0,30,0" Background="Red">
</StackPanel>
</Grid>
</DataTemplate>
<DataTemplate x:Key="DogTemplate">
<Grid>
<StackPanel Margin="30,0,30,0" Background="Green">
</StackPanel>
</Grid>
</DataTemplate>
</Page.Resources>
А вот так выглядит мой Griview:
<GridView x:Name="myGridView" ItemTemplateSelector="{StaticResource MyDataTemplateSelector}"
ScrollViewer.HorizontalScrollBarVisibility="Hidden"
ScrollViewer.HorizontalScrollMode="Auto"
ScrollViewer.VerticalScrollBarVisibility="Disabled"
ScrollViewer.VerticalScrollMode="Disabled">
<GridView.RenderTransform>
<TranslateTransform x:Name="CarouselTransform" />
</GridView.RenderTransform>
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<ItemsWrapGrid Orientation="Vertical"/>
</ItemsPanelTemplate>
</GridView.ItemsPanel>
</GridView>
<Button Click="Left_Click" Content="Left" Background="Blue" HorizontalAlignment="Left"Width="405"/>
И вот как я запускаю свою раскадровку, используя C #
private int currentElement = 0;
private void Left_Click(object sender, RoutedEventArgs e)
{
if (currentElement < 100)
{
currentElement++;
AnimateCarousel();
}
}
private void AnimateCarousel()
{
Storyboard storyboard = (this.Resources["CarouselStoryboard"] as Storyboard);
DoubleAnimation animation = storyboard.Children.First() as DoubleAnimation;
animation.To = -200 * currentElement;
storyboard.Begin();
}