async void ErrorMessage(Custom.AppEntry field, Label label, string errorMessage) { field.Text = string.Empty; field.BorderColor = Color.Red; label.Text = errorMessage; label.Opacity = 0; await label.FadeTo(1, 300); }
async Task ErrorAnimation(Custom.AppEntry field, Label label) // Animacja wibracji okna wpisywania w przypadku bledu { if (label.Opacity == 0) { await Task.WhenAll( Vibration(field), label.FadeTo(1, 300)); } else { await Vibration(field); } }
async Task ErrorAnimation(Custom.AppEntry field, Label label) { if (label.Opacity == 0) { await Task.WhenAll( Vibration(field), label.FadeTo(1, 300)); } else { await Vibration(field); } }
async Task Vibration(Custom.AppEntry field) { const uint animateTime = 60; Easing easing = Easing.BounceOut; await field.TranslateTo(2, 0, animateTime, easing); await field.TranslateTo(-2, 0, animateTime, easing); await field.TranslateTo(1, 0, animateTime, easing); await field.TranslateTo(-1, 0, animateTime, easing); await field.TranslateTo(0, 0, animateTime, easing); }
async void ErrorMessage(Custom.AppEntry field, Label label, string errorMessage) // Wypisuje blad i tworzy animacje wibracji okna { field.Text = string.Empty; field.BorderColor = Color.Red; label.Text = errorMessage; char[] delimiters = new char[] { ' ', '\r', '\n' }; int count = errorMessage.Length; if (count > 40) { label.HeightRequest = 8 + 7 * ((count / 40) - 1); } await ErrorAnimation(field, label); }