private async void RunAnimations()
        {
            await Dot1.FadeTo(1, 200);

            await Dot1.FadeTo(0, 200);

            await Dot2.FadeTo(1, 200);

            await Dot2.FadeTo(0, 200);

            await Dot3.FadeTo(1, 200);

            await Dot3.FadeTo(0, 200);
        }
        public AnimatingDotsControl()
        {
            InitializeComponent();

            if (Device.OS == TargetPlatform.Android)
            {
                Dot1.TranslateTo(Dot1.X, Dot1.Y + 50);
                Dot2.TranslateTo(Dot1.X, Dot2.Y + 50);
                Dot3.TranslateTo(Dot1.X, Dot3.Y + 50);

                Dot1Shadow.TranslateTo(Dot1.X, Dot1.Y + 50);
                Dot2Shadow.TranslateTo(Dot1.X, Dot2.Y + 50);
                Dot3Shadow.TranslateTo(Dot1.X, Dot3.Y + 50);
            }
        }
        private void RunAnimations()
        {
            var pulseAnimation1 = new Animation();

            pulseAnimation1.Add(0, 0.33, new Animation(alpha => Dot1.Opacity    = alpha, 1, 0, Easing.CubicOut, () => Dot1.FadeTo(1)));
            pulseAnimation1.Add(0.33, 0.66, new Animation(alpha => Dot2.Opacity = alpha, 1, 0, Easing.CubicOut, () => Dot2.FadeTo(1)));
            pulseAnimation1.Add(0.66, 0.99, new Animation(alpha => Dot3.Opacity = alpha, 1, 0, Easing.CubicOut, () => Dot3.FadeTo(1)));

            pulseAnimation1.Commit(this, "loadingIndicatorPulseAnimation", 10, 1100, null, null, () => true);
        }