AnimationExtensions.cs 922 B

123456789101112131415161718192021222324252627282930313233
  1. using System;
  2. using Avalonia;
  3. using Avalonia.Controls;
  4. namespace SukiUI.Helpers
  5. {
  6. public static class AnimationExtensions
  7. {
  8. public static readonly AttachedProperty<double> FadeInProperty = AvaloniaProperty.RegisterAttached<Control, double>("FadeIn", typeof(Control), defaultValue: 0);
  9. public static double GetFadeIn(Control wrap)
  10. {
  11. return wrap.GetValue(FadeInProperty);
  12. }
  13. public static void SetFadeIn(Control interactElem, double value)
  14. {
  15. if (value > 0)
  16. {
  17. interactElem.Opacity = 0;
  18. interactElem.AttachedToVisualTree += (sender, args) =>
  19. {
  20. interactElem.Animate<double>(Control.OpacityProperty, 0,1, TimeSpan.FromMilliseconds(value));
  21. };
  22. }
  23. interactElem.SetValue(FadeInProperty, value);
  24. }
  25. }
  26. }