コード例 #1
0
        private async Task ValidLoginAnimation()
        {
            await LoginContainer.FadeTo(0, 250);

            AnimationView.Opacity = 1;
            await AnimationView.TranslateTo(0, 0, 2000, Easing.SinInOut);

            ConfettiView.Opacity = 1;
            ConfettiView.Play();
            ConfettiView.OnFinish += ConfettiView_OnFinish;
            await Task.Delay(1000);

            await AnimationView.TranslateTo(300, 0, 2000, Easing.SinInOut);

            AnimationView.Opacity = 0;
        }
コード例 #2
0
ファイル: Login.cs プロジェクト: TheEightBot/AuroraBorealis
        public Login()
        {
            var mainLayout =
                new Grid
            {
                BackgroundColor = Colors.NearWhite,

                RowDefinitions =
                    new RowDefinitionCollection
                {
                    new RowDefinition {
                        Height = GridLength.Star
                    },
                    new RowDefinition {
                        Height = GridLength.Auto
                    },
                    new RowDefinition {
                        Height = GridLength.Auto
                    },
                    new RowDefinition {
                        Height = GridLength.Auto
                    }
                }
            };

            var background =
                new Image
            {
                Aspect = Aspect.AspectFill,
                Source = "background.jpg"
            };

            var logo =
                new Image
            {
                HorizontalOptions = LayoutOptions.CenterAndExpand,
                VerticalOptions   = LayoutOptions.CenterAndExpand,
                Margin            = 64,
                Aspect            = Aspect.AspectFit,
                Source            = "logo.jpg"
            };

            var username =
                new FloatLabelEntry
            {
                Margin      = new Thickness(16, 8),
                Placeholder = "Username"
            };

            var password =
                new FloatLabelEntry
            {
                Margin      = new Thickness(16, 8),
                IsPassword  = true,
                Placeholder = "Password"
            };

            var login =
                new Button
            {
                Margin = 16,
                Text   = "Login"
            };

            var waveProgress =
                new WaveProgress()
            {
                TranslationY     = (ScreenHeightDp / 2d) + 8,
                InputTransparent = true
            };

            var snow =
                new ConfettiView()
            {
                Continuous    = true,
                MaxParticles  = 8,
                ConfettiShape = ConfettiShape.Circular
            };

            login.Clicked +=
                async(s, e) =>
            {
                waveProgress.StartLoading();
                await waveProgress.TranslateTo(0, 0, 500);
            };

            mainLayout.Children.Add(background, 0, 0);
            Grid.SetRowSpan(background, 4);

            mainLayout.Children.Add(snow, 0, 0);
            Grid.SetRowSpan(snow, 4);

            mainLayout.Children.Add(logo, 0, 0);

            mainLayout.Children.Add(username, 0, 1);
            mainLayout.Children.Add(password, 0, 2);
            mainLayout.Children.Add(login, 0, 3);

            mainLayout.Children.Add(waveProgress, 0, 0);
            Grid.SetRowSpan(waveProgress, 4);

            Content = mainLayout;

            snow.Start();
        }