Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
CrossFadeViewTransition.cs
1using System.Threading;
2using System.Threading.Tasks;
3using Microsoft.Maui.Controls;
4
6{
8 {
9 public async Task RunAsync(ViewSwitcherTransitionRequest request, CancellationToken cancellationToken)
10 {
11 if (request is null)
12 return;
13
14 if (!request.Animate)
15 return;
16
17 if (request.IsInitial)
18 return;
19
20 VisualElement? oldElement = request.OldView as VisualElement;
21 VisualElement? newElement = request.NewView as VisualElement;
22
23 if (oldElement is null && newElement is null)
24 return;
25
26 cancellationToken.ThrowIfCancellationRequested();
27
28 Task? fadeOutTask = null;
29 if (oldElement is not null)
30 {
31 fadeOutTask = oldElement.FadeToAsync(0.0, request.Duration / 2, request.Easing);
32 }
33
34 Task? fadeInTask = null;
35 if (newElement is not null)
36 {
37 newElement.Opacity = 0.0;
38 fadeInTask = newElement.FadeToAsync(1.0, request.Duration / 2, request.Easing);
39 }
40
41 if (fadeOutTask is not null && fadeInTask is not null)
42 {
43 await Task.WhenAll(fadeOutTask, fadeInTask).ConfigureAwait(false);
44 }
45 else if (fadeOutTask is not null)
46 {
47 await fadeOutTask.ConfigureAwait(false);
48 }
49 else if (fadeInTask is not null)
50 {
51 await fadeInTask.ConfigureAwait(false);
52 }
53 }
54 }
55}
Immutable context supplied to IViewTransition implementations.
Defines a strategy used by ViewSwitcher to animate between two views.