Windows Phone 8.1 ScrollViewer 滚动的图片

network | | 访问(58)
<StackPanel>
    <ScrollViewer Name="scrollViewer1"  VerticalScrollBarVisibility="Hidden" Height="300">
        <StackPanel Name="stkpnlImage" />
    </ScrollViewer>
    <Button Content="往上" FontSize="30" Click="btnUp_Click" />
    <Button Content="往下" FontSize="30" Click="btnDown_Click"  />
    <Button Content="停止" FontSize="30" Click="stop_Click" />
</StackPanel>
public sealed partial class MainPage: Page {
    private DispatcherTimer tmrDown;
    private DispatcherTimer tmrUp;
    public MainPage() {
        InitializeComponent();
        for (int i = 0; i <= 30; i++) {
            Image imgItem = new Image();
            imgItem.Width = 200;
            imgItem.Height = 200;
            if (i % 4 == 0) {
                imgItem.Source = (new BitmapImage(new Uri("ms-appx:///a.jpg", UriKind.RelativeOrAbsolute)));
            } else if (i % 4 == 1) {
                imgItem.Source = (new BitmapImage(new Uri("ms-appx:///b.jpg", UriKind.RelativeOrAbsolute)));

            } else if (i % 4 == 2) {
                imgItem.Source = (new BitmapImage(new Uri("ms-appx:///c.jpg", UriKind.RelativeOrAbsolute)));

            } else {
                imgItem.Source = (new BitmapImage(new Uri("ms-appx:///d.jpg", UriKind.RelativeOrAbsolute)));

            }
            this.stkpnlImage.Children.Add(imgItem);
        }

        tmrDown = new DispatcherTimer();
        tmrDown.Interval = new TimeSpan(500);
        tmrDown.Tick += tmrDown_Tick;
        tmrUp = new DispatcherTimer();
        tmrUp.Interval = new TimeSpan(500);
        tmrUp.Tick += tmrUp_Tick;
    }

    void tmrUp_Tick(object sender, object e) {
        scrollViewer1.ScrollToVerticalOffset(scrollViewer1.VerticalOffset - 10);
    }

    void tmrDown_Tick(object sender, object e) {
        tmrUp.Stop();
        scrollViewer1.ScrollToVerticalOffset(scrollViewer1.VerticalOffset + 10);
    }

    private void btnUp_Click(object sender, RoutedEventArgs e) {
        tmrDown.Stop();
        tmrUp.Start();
    }

    private void btnDown_Click(object sender, RoutedEventArgs e) {
        tmrDown.Start();
    }

    private void stop_Click(object sender, RoutedEventArgs e) {
        tmrUp.Stop();
        tmrDown.Stop();
    }

    protected override void OnNavigatedTo(NavigationEventArgs e) {}
}