private void BackButton_Response(object sender, CustomButtonEventArgs e) { if (e.ActionType != "Click") { return; } if (NowContainer == null) { return; } Pair pair = StackHistory.Pop(); ChangeCaption(pair.First, -1); AniScrollViewer scroll = pair.Second as AniScrollViewer; AnimateContainer(NowContainer, 0, 150); AnimateContainer(scroll, 1, 0); NowCaption = pair.First; NowContainer = scroll; if (StackHistory.Count > 0) { buttonBack.ViewMode = ImageButton.Mode.Visible; } else { buttonBack.ViewMode = ImageButton.Mode.Hidden; } }
private void BwSubtitle_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { if (e.Cancelled || e.Error != null) { StopSubtitleIndicator(); return; } if (e.Result != null) { Pair pair = e.Result as Pair; string title = pair.First; List <Listdata> list = pair.Second as List <Listdata>; if (NowContainer != null) { buttonBack.ViewMode = ImageButton.Mode.Visible; StackHistory.Push(new Pair(NowCaption, NowContainer)); AnimateContainer(NowContainer, 0, -150); ChangeCaption(title); } else { buttonBack.ViewMode = ImageButton.Mode.Hidden; ChangeCaption(title, 0); } AniScrollViewer scroll = new AniScrollViewer() { Opacity = 0, Margin = new Thickness(150, 0, 0, 0), VerticalScrollBarVisibility = ScrollBarVisibility.Auto, }; StackPanel stack = new StackPanel(); foreach (Listdata data in list) { ListItem item = new ListItem(data); item.Response += SubtitleItem_Response; stack.Children.Add(item); } NowCaption = title; NowContainer = scroll; AnimateContainer(scroll, 1, 0); scroll.Content = stack; gridSubtitle.Children.Add(scroll); scroll.ScrollToTop(); } else { NowContainer.IsHitTestVisible = true; } StopSubtitleIndicator(); }
private void AnimateContainer(AniScrollViewer element, double opacity, double left) { element.IsHitTestVisible = opacity == 0 ? false : true; Storyboard sb = new Storyboard(); sb.Children.Add(Animation.GetDoubleAnimation(opacity, element, 350)); sb.Children.Add(Animation.GetThicknessAnimation(350, left, 0, element)); sb.Begin(); }