public virtual void HandleInitView(View view, CardsView cardsView, PanItemPosition panItemPosition) { if (view != null) { view.TranslationX = 0; view.IsVisible = true; } }
public virtual void InitView(View view, CardsView cardsView, PanItemPosition panItemPosition) { if (view != null) { view.TranslationX = Math.Sign((int)panItemPosition) * cardsView.Width; view.IsVisible = false; } }
public virtual Task HandlePanApply(View view, CardsView cardsView, PanItemPosition panItemPosition) { if (view != null) { view.Scale = 1; } return(Task.FromResult(true)); }
public virtual void HandleAutoNavigate(View view, CardsView cardsView, PanItemPosition panItemPosition) { if (view != null) { view.IsVisible = true; new Animation(v => view.TranslationX = v, view.TranslationX, 0) .Commit(view, nameof(HandleAutoNavigate), 16, AnimationLength, AnimEasing); } }
public virtual async Task HandlePanApply(View view, CardsView cardsView, PanItemPosition panItemPosition) { if (view != null) { await view.FadeTo(0, ApplyAnimationLength, ApplyEasing); view.IsVisible = false; } }
public virtual void AutoNavigate(View view, CardsView cardsView, PanItemPosition panItemPosition) { if (view != null) { view.IsVisible = true; new Animation(v => view.Scale = v, view.Scale, 1) .Commit(view, nameof(AutoNavigate), 16, AutoNavigateAnimationLength, AutoNavigateEasing); } }
public virtual void InitView(View view, CardsView cardsView, PanItemPosition panItemPosition) { if (view != null) { view.TranslationX = 0; view.Rotation = 0; view.TranslationY = 0; view.Opacity = 1; view.IsVisible = false; view.Scale = InitialScale; } }
public virtual Task HandlePanReset(View view, CardsView cardsView, PanItemPosition panItemPosition) { if (view != null) { var tcs = new TaskCompletionSource <bool>(); var animLength = (uint)(ResetAnimationLength * (view.Scale - InitialScale) / (1 - InitialScale)); new Animation(v => view.Scale = v, view.Scale, InitialScale) .Commit(view, nameof(HandlePanReset), 16, animLength, ResetEasing, (v, t) => tcs.SetResult(true)); return(tcs.Task); } return(Task.FromResult(true)); }
public virtual void AutoNavigate(View view, CardsView cardsView, PanItemPosition panItemPosition) { if (view != null) { cardsView.AutoNavigatingStarted(view); new Animation(v => HandleAutoAnimatingPosChanged(view, cardsView, v, panItemPosition), 0, cardsView.MoveDistance) .Commit(view, nameof(AutoNavigate), 16, AutoNavigateAnimationLength, AutoNavigateEasing, async(v, t) => { await HandlePanApply(view, cardsView, panItemPosition); cardsView.AutoNavigatingEnded(view); }); } }
public virtual Task HandlePanApply(View view, CardsView cardsView, PanItemPosition panItemPosition) { if (view != null) { var tcs = new TaskCompletionSource <bool>(); var animTimePercent = 1 - (cardsView.Width - Abs(view.TranslationX)) / cardsView.Width; var animLength = (uint)(AnimationLength * animTimePercent); new Animation(v => view.TranslationX = v, view.TranslationX, 0) .Commit(view, nameof(HandlePanApply), 16, animLength, AnimEasing, (v, t) => tcs.SetResult(true)); return(tcs.Task); } return(Task.FromResult(true)); }
public virtual Task HandlePanReset(View view, CardsView cardsView, PanItemPosition panItemPosition) { if (view != null) { var tcs = new TaskCompletionSource <bool>(); var animTimePercent = (cardsView.Width - Math.Abs(view.TranslationX)) / cardsView.Width; var animLength = (uint)(AnimationLength * animTimePercent); new Animation(v => view.TranslationX = v, view.TranslationX, Math.Sign((int)panItemPosition) * cardsView.Width) .Commit(view, nameof(HandlePanReset), 16, animLength, finished: (v, t) => tcs.SetResult(true)); return(tcs.Task); } return(Task.FromResult(true)); }
public virtual void AutoNavigate(View view, CardsView cardsView, PanItemPosition panItemPosition) { if (view != null) { var destinationPos = panItemPosition == PanItemPosition.Prev ? cardsView.Width : -cardsView.Width; cardsView.AutoNavigatingStarted(view); new Animation(v => view.TranslationX = v, 0, destinationPos) .Commit(view, nameof(AutoNavigate), 16, AnimationLength, AnimEasing, (v, t) => { cardsView.AutoNavigatingEnded(view); }); } }
public virtual Task HandlePanReset(View view, CardsView cardsView, PanItemPosition panItemPosition) { var tcs = new TaskCompletionSource <bool>(); if (!CheckIsInitialPosition(view)) { var animLength = (uint)(ResetAnimationLength * Math.Min(Math.Abs(view.TranslationX / cardsView.MoveDistance), 1.0)); new Animation { { 0, 1, new Animation(v => view.TranslationX = v, view.TranslationX, 0) }, { 0, 1, new Animation(v => view.TranslationY = v, view.TranslationY, 0) }, { 0, 1, new Animation(v => view.Rotation = v, view.Rotation, 0) } }.Commit(view, nameof(HandlePanReset), 16, animLength, ResetEasing, (v, c) => SetInitialResult(view, tcs)); } else { SetInitialResult(view, tcs); } return(tcs.Task); }
private void HandleAutoAnimatingPosChanged(View view, CardsView cardsView, double xPos, PanItemPosition panItemPosition) { if (panItemPosition == PanItemPosition.Next) { xPos = -xPos; } view.TranslationX = xPos; view.TranslationY = Math.Abs(xPos) / 10; view.Rotation = 0.3 * Math.Min(xPos / cardsView.Width, 1) * Rad; }
public virtual void HandlePanChanged(View view, CardsView cardsView, double xPos, PanItemPosition panItemPosition) { var value = Math.Sign((int)panItemPosition) * cardsView.Width + xPos; if (Math.Abs(value) > cardsView.Width || (panItemPosition == PanItemPosition.Prev && value > 0) || (panItemPosition == PanItemPosition.Next && value < 0)) { return; } view.TranslationX = value; }
public virtual void HandlePanChanged(View view, CardsView cardsView, double xPos, PanItemPosition panItemPosition) { if (Abs(xPos) > cardsView.Width || (panItemPosition == PanItemPosition.Prev && xPos < 0) || (panItemPosition == PanItemPosition.Next && xPos > 0)) { return; } if (panItemPosition == PanItemPosition.Null) { xPos = Sign(xPos) * Min(Abs(xPos / 4), NoItemMaxPanDistance); } view.TranslationX = xPos; }
public virtual void HandlePanChanged(View view, CardsView cardsView, double xPos, PanItemPosition panItemPosition) { var calcScale = InitialScale + Math.Abs((xPos / cardsView.MoveDistance) * (1 - InitialScale)); view.Scale = Math.Min(calcScale, 1); }
public virtual void HandlePanChanged(View view, CardsView cardsView, double xPos, PanItemPosition panItemPosition) { var multiplier = 1; if (panItemPosition == PanItemPosition.Null) { xPos = Sign(xPos) * Min(Abs(xPos / 4), NoItemMaxPanDistance); multiplier = -multiplier; } view.TranslationX = xPos; view.TranslationY = multiplier * Abs(xPos) / 10; view.Rotation = multiplier * 0.3 * Rad * (xPos / cardsView.Width); }
public virtual void InitView(View view, CardsView cardsView, PanItemPosition panItemPosition) => ResetInitialState(view);
public virtual void HandlePanChanged(View view, CardsView cardsView, double xPos, PanItemPosition panItemPosition) { if (panItemPosition == PanItemPosition.Null) { return; } var calcScale = InitialScale + Abs((xPos / cardsView.MoveDistance) * (1 - InitialScale)); view.Scale = Min(calcScale, 1); }
public virtual void HandlePanChanged(View view, CardsView cardsView, double xPos, PanItemPosition panItemPosition) { if (Math.Abs(xPos) > cardsView.Width || (panItemPosition == PanItemPosition.Prev && xPos < 0) || (panItemPosition == PanItemPosition.Next && xPos > 0)) { return; } view.TranslationX = xPos; }
public virtual void HandlePanChanged(View view, CardsView cardsView, double xPos, PanItemPosition panItemPosition) { view.TranslationX = xPos; view.TranslationY = Math.Abs(xPos) / 10; view.Rotation = 0.3 * Math.Min(xPos / cardsView.Width, 1) * Rad; }