private void CarouselView_UserInteracted(PanCardView.CardsView view, PanCardView.EventArgs.UserInteractedEventArgs args) { if (args.Status == PanCardView.Enums.UserInteractionStatus.Started) { MainPage.DisableSwipe(); } }
private void MainCardView_UserInteracted(PanCardView.CardsView view, PanCardView.EventArgs.UserInteractedEventArgs args) { var card = MainCardView.CurrentView as HeroCard; if (args.Status == PanCardView.Enums.UserInteractionStatus.Running) { // work out what percent the swipe is at var percentFromCenter = Math.Abs(args.Diff / this.Width); Debug.WriteLine($"Percent {percentFromCenter}"); var opacity = (1 - (percentFromCenter)) * 1.5; if (opacity > 1) { opacity = 1; } MainCardView.CurrentView.Opacity = opacity; // do the scaling on the main card during swipe var scale = (1 - (percentFromCenter) * 1.5); if (scale > 1) { scale = 1; } card.MainImage.Scale = scale; var imageBaseMargin = -150; var movementFactor = 100; var translation = imageBaseMargin + (movementFactor * percentFromCenter); card.MainImage.TranslationY = translation; // adjust opacity of image card.MainImage.Opacity = opacity; var nextCard = MainCardView.CurrentBackViews.First() as HeroCard; // adjust opacity of the back image nextCard.MainImage.Opacity = LimitToRange(percentFromCenter * 1.5, 0, 1); nextCard.MainImage.Scale = LimitToRange(percentFromCenter * 1.5, 0, 1); // percent => 0, 0 // percent => .5 => -75 // percent => 1, -150 nextCard.MainImage.TranslationY = LimitToRange((imageBaseMargin * percentFromCenter) * 1.5, -150, 0); } if (args.Status == PanCardView.Enums.UserInteractionStatus.Ended || args.Status == PanCardView.Enums.UserInteractionStatus.Ending) { card.Opacity = 1; card.MainImage.Scale = 1; card.MainImage.TranslationY = -150; card.MainImage.Opacity = 1; } }
private void _coverFlow_UserInteracted(PanCardView.CardsView view, PanCardView.EventArgs.UserInteractedEventArgs args) { if (args.Status == PanCardView.Enums.UserInteractionStatus.Started) { FootballMatchesTabPage.DisableSwipe(); } if (args.Status == PanCardView.Enums.UserInteractionStatus.Ended) { FootballMatchesTabPage.EnableSwipe(); } }
private void MainCardView_UserInteracted( PanCardView.CardsView view, PanCardView.EventArgs.UserInteractedEventArgs args) { var card = MainCardView.CurrentView as PokemonCardView; if (args.Status == PanCardView.Enums.UserInteractionStatus.Running) { var ratioFromCenter = Math.Abs(args.Diff / this.Width); animateFirstCard(card, ratioFromCenter); var nextCard = MainCardView.CurrentBackViews.First() as PokemonCardView; animateSecondCard(nextCard, ratioFromCenter); } //Reset parameters of the card after swipe so it doens't look stupid if (args.Status == PanCardView.Enums.UserInteractionStatus.Ending) { card.MainImage.FadeTo(1, 250); card.MainImage.ScaleTo(1, 250); card.MainImage.TranslateTo(this.X, 0, 250); card.ScaleTo(1, 50); } if (args.Status == PanCardView.Enums.UserInteractionStatus.Ended) { if (MainCardView.CurrentBackViews.Count() == 0) { return; } var prevCard = MainCardView.CurrentBackViews.First() as PokemonCardView; prevCard.MainImage.TranslationY = 0; } }
private void MainCardView_UserInteracted( PanCardView.CardsView view, PanCardView.EventArgs.UserInteractedEventArgs args) { if (args.Status == PanCardView.Enums.UserInteractionStatus.Running) { // get the front card var card = MainCardView.CurrentView as HeroCard; // work out what percent the swipe is at var percentFromCenter = Math.Abs(args.Diff / this.Width); // adjust scale when panning if ((percentFromCenter > 0) && (card.Scale == 1)) { card.ScaleTo(.95, 50); } // update elements based on swipe position AnimateFrontCardDuringSwipe(card, percentFromCenter); // get the next card on the stack, which is the one coming into view var nextCard = MainCardView.CurrentBackViews.First() as HeroCard; // update elements based on swipe position AnimateIncomingCardDuringSwipe(nextCard, percentFromCenter); } if (args.Status == PanCardView.Enums.UserInteractionStatus.Ended || args.Status == PanCardView.Enums.UserInteractionStatus.Ending) { // at the end of dragging we need to make sure card is reset var card = MainCardView.CurrentView as HeroCard; AnimateFrontCardDuringSwipe(card, 0); card.ScaleTo(1, 50); } }
private async void CoverFlowView_UserInteractedAsync(PanCardView.CardsView view, PanCardView.EventArgs.UserInteractedEventArgs args) { if (args.Status == PanCardView.Enums.UserInteractionStatus.Started) { await playNeedleAnimationManager.RunAnimationAsync(Models.ENUM.PlayNeedleRunMode.up); } else if (args.Status == PanCardView.Enums.UserInteractionStatus.Ended) { await playNeedleAnimationManager.RunAnimationAsync(Models.ENUM.PlayNeedleRunMode.down); } }
private void MainCardView_UserInteracted(PanCardView.CardsView view, PanCardView.EventArgs.UserInteractedEventArgs args) { var card = MainCardView.CurrentView as HeroCard; var nextCard = MainCardView.CurrentBackViews.FirstOrDefault() as HeroCard; var percentFromCenter = Math.Abs(args.Diff / this.Width); Debug.WriteLine($"% from C: {card.MainImage.Source.ToString()} {args.Status} {percentFromCenter}"); if (args.Status == PanCardView.Enums.UserInteractionStatus.Started) { if (nextCard != null && false) { nextCard.Opacity = 1; nextCard.MainImage.Scale = 1; nextCard.MainImage.TranslationY = _defaultTranslationY; } } if (args.Status == PanCardView.Enums.UserInteractionStatus.Running) { // control opacity of currnet card var opacity = 1 - (percentFromCenter * 0.8); card.Opacity = (opacity > 1) ? 1 : opacity; // set scale of image in current card card.MainImage.Scale = Math.Max(1 - (percentFromCenter * 1.5), .5); // set position of image in current card var movementFactor = 150; card.MainImage.TranslationY = _defaultTranslationY + (movementFactor * percentFromCenter); // set opacity of next card nextCard.MainImage.Opacity = 1 - (opacity / 4); nextCard.MainImage.Scale = Math.Min(percentFromCenter * 3, 1); // set margin var lrMargin = Math.Min(10, 50 * percentFromCenter); // add margin card.ScaleTo(.9, 50); } if (args.Status == PanCardView.Enums.UserInteractionStatus.Ended || args.Status == PanCardView.Enums.UserInteractionStatus.Ending) { card.Opacity = 1; card.MainImage.Opacity = 1; card.MainImage.Scale = 1; card.MainImage.TranslationY = _defaultTranslationY; // ensure next card is hidden nextCard.MainImage.Opacity = 0; nextCard.MainImage.Scale = 1; nextCard.MainImage.TranslationY = _defaultTranslationY; // remove margin card.ScaleTo(1, 50); } }