2using System.Threading.Tasks;
3using Microsoft.Maui.Controls;
17 if (request.IsInitial)
20 VisualElement? oldElement = request.OldView as VisualElement;
21 VisualElement? newElement = request.NewView as VisualElement;
23 if (oldElement is
null && newElement is
null)
26 cancellationToken.ThrowIfCancellationRequested();
28 Task? fadeOutTask =
null;
29 if (oldElement is not
null)
31 fadeOutTask = oldElement.FadeToAsync(0.0, request.Duration / 2, request.Easing);
34 Task? fadeInTask =
null;
35 if (newElement is not
null)
37 newElement.Opacity = 0.0;
38 fadeInTask = newElement.FadeToAsync(1.0, request.Duration / 2, request.Easing);
41 if (fadeOutTask is not
null && fadeInTask is not
null)
43 await Task.WhenAll(fadeOutTask, fadeInTask).ConfigureAwait(
false);
45 else if (fadeOutTask is not
null)
47 await fadeOutTask.ConfigureAwait(
false);
49 else if (fadeInTask is not
null)
51 await fadeInTask.ConfigureAwait(
false);
Immutable context supplied to IViewTransition implementations.
Defines a strategy used by ViewSwitcher to animate between two views.