public AnimationBuilder Scale( double to, double?from = null, TimeSpan?delay = null, TimeSpan?duration = null, RepeatOption?repeat = null, EasingType easingType = DefaultEasingType, EasingMode easingMode = DefaultEasingMode, FrameworkLayer layer = FrameworkLayer.Composition) { if (layer == FrameworkLayer.Composition) { Vector3?from3 = from is null ? null : new((float)(double)from); Vector3 to3 = new((float)to); AddCompositionAnimationFactory(nameof(Visual.Scale), to3, from3, delay, duration, repeat, easingType, easingMode); } else { AddXamlTransformDoubleAnimationFactory(nameof(CompositeTransform.ScaleX), to, from, delay, duration, repeat, easingType, easingMode); AddXamlTransformDoubleAnimationFactory(nameof(CompositeTransform.ScaleY), to, from, delay, duration, repeat, easingType, easingMode); } return(this); }
public AnimationBuilder TimedKeyFrames <T, TState>( string property, TState state, Action <ITimedKeyFrameAnimationBuilder <T>, TState> build, TimeSpan?delay = null, RepeatOption?repeatOption = null, FrameworkLayer layer = FrameworkLayer.Composition) where T : unmanaged { if (layer == FrameworkLayer.Composition) { TimedKeyFrameAnimationBuilder <T> .Composition builder = new(property, delay, repeatOption ?? RepeatOption.Once); build(builder, state); this.compositionAnimationFactories.Add(builder); } else { TimedKeyFrameAnimationBuilder <T> .Xaml builder = new(property, delay, repeatOption ?? RepeatOption.Once); build(builder, state); this.xamlAnimationFactories.Add(builder); } return(this); }
public AnimationBuilder TimedKeyFrames <T>( string property, Action <ITimedKeyFrameAnimationBuilder <T> > build, TimeSpan?delay = null, RepeatOption?repeat = null, AnimationDelayBehavior?delayBehavior = null, FrameworkLayer layer = FrameworkLayer.Composition) where T : unmanaged { if (layer == FrameworkLayer.Composition) { TimedKeyFrameAnimationBuilder <T> .Composition builder = new( property, delay, repeat ?? RepeatOption.Once, delayBehavior ?? DefaultDelayBehavior); build(builder); this.compositionAnimationFactories.Add(builder); } else { TimedKeyFrameAnimationBuilder <T> .Xaml builder = new(property, delay, repeat ?? RepeatOption.Once); build(builder); this.xamlAnimationFactories.Add(builder); } return(this); }
public IPropertyAnimationBuilder <double> Size(Axis axis, FrameworkLayer layer = FrameworkLayer.Composition) { if (layer == FrameworkLayer.Composition) { return(new PropertyAnimationBuilder <double>(this, Properties.Composition.Size(axis), layer)); } return(new PropertyAnimationBuilder <double>(this, Properties.Xaml.Size(axis), layer)); }
public IPropertyAnimationBuilder <double> RotationInDegrees(FrameworkLayer layer = FrameworkLayer.Composition) { if (layer == FrameworkLayer.Composition) { return(new PropertyAnimationBuilder <double>(this, nameof(Visual.RotationAngleInDegrees), layer)); } return(new XamlTransformPropertyAnimationBuilder(this, nameof(CompositeTransform.Rotation))); }
public IPropertyAnimationBuilder <double> Translation(Axis axis, FrameworkLayer layer = FrameworkLayer.Composition) { if (layer == FrameworkLayer.Composition) { return(new PropertyAnimationBuilder <double>(this, Properties.Composition.Translation(axis), layer)); } return(new XamlTransformPropertyAnimationBuilder(this, Properties.Xaml.Translation(axis))); }
public static IAnimationBuilder Animation([NotNull] this UIElement target, FrameworkLayer layer = FrameworkLayer.Composition) { switch (layer) { case FrameworkLayer.Composition: return(new CompositionAnimationBuilder(target)); case FrameworkLayer.Xaml: return(new XamlAnimationBuilder(target)); default: throw new ArgumentOutOfRangeException(nameof(layer), layer, $"The {layer} value isn't valid"); } }
public AnimationBuilder Opacity( double to, double?from = null, TimeSpan?delay = null, TimeSpan?duration = null, EasingType easingType = DefaultEasingType, EasingMode easingMode = DefaultEasingMode, FrameworkLayer layer = FrameworkLayer.Composition) { if (layer == FrameworkLayer.Composition) { AddCompositionAnimationFactory(nameof(Visual.Opacity), (float)to, (float?)from, delay, duration, easingType, easingMode); } else { AddXamlAnimationFactory(nameof(UIElement.Opacity), to, from, delay, duration, easingType, easingMode); } return(this); }
public AnimationBuilder RotationInDegrees( double to, double?from = null, TimeSpan?delay = null, TimeSpan?duration = null, EasingType easingType = DefaultEasingType, EasingMode easingMode = DefaultEasingMode, FrameworkLayer layer = FrameworkLayer.Composition) { if (layer == FrameworkLayer.Composition) { AddCompositionAnimationFactory(nameof(Visual.RotationAngleInDegrees), (float)to, (float?)from, delay, duration, easingType, easingMode); } else { AddXamlTransformDoubleAnimationFactory(nameof(CompositeTransform.Rotation), to, from, delay, duration, easingType, easingMode); } return(this); }
public AnimationBuilder CenterPoint( Vector2 to, Vector2?from = null, TimeSpan?delay = null, TimeSpan?duration = null, EasingType easingType = DefaultEasingType, EasingMode easingMode = DefaultEasingMode, FrameworkLayer layer = FrameworkLayer.Composition) { if (layer == FrameworkLayer.Composition) { AddCompositionAnimationFactory(Properties.Composition.CenterPointXY(), to, from, delay, duration, easingType, easingMode); } else { AddXamlTransformDoubleAnimationFactory(nameof(CompositeTransform.CenterX), to.X, from?.X, delay, duration, easingType, easingMode); AddXamlTransformDoubleAnimationFactory(nameof(CompositeTransform.CenterY), to.Y, from?.Y, delay, duration, easingType, easingMode); } return(this); }
public AnimationBuilder CenterPoint( Axis axis, double to, double?from = null, TimeSpan?delay = null, TimeSpan?duration = null, EasingType easingType = DefaultEasingType, EasingMode easingMode = DefaultEasingMode, FrameworkLayer layer = FrameworkLayer.Composition) { if (layer == FrameworkLayer.Composition) { AddCompositionAnimationFactory(Properties.Composition.CenterPoint(axis), (float)to, (float?)from, delay, duration, easingType, easingMode); } else { AddXamlTransformDoubleAnimationFactory(Properties.Xaml.CenterPoint(axis), to, from, delay, duration, easingType, easingMode); } return(this); }
public AnimationBuilder Size( Vector2 to, Vector2?from = null, TimeSpan?delay = null, TimeSpan?duration = null, EasingType easingType = DefaultEasingType, EasingMode easingMode = DefaultEasingMode, FrameworkLayer layer = FrameworkLayer.Composition) { if (layer == FrameworkLayer.Composition) { AddCompositionAnimationFactory(Properties.Composition.Size(), to, from, delay, duration, easingType, easingMode); } else { AddXamlAnimationFactory(nameof(FrameworkElement.Width), to.X, from?.X, delay, duration, easingType, easingMode); AddXamlAnimationFactory(nameof(FrameworkElement.Height), to.Y, from?.Y, delay, duration, easingType, easingMode); } return(this); }
public AnimationBuilder Translation( Axis axis, double to, double?from = null, TimeSpan?delay = null, TimeSpan?duration = null, RepeatOption?repeat = null, EasingType easingType = DefaultEasingType, EasingMode easingMode = DefaultEasingMode, FrameworkLayer layer = FrameworkLayer.Composition) { if (layer == FrameworkLayer.Composition) { AddCompositionAnimationFactory(Properties.Composition.Translation(axis), (float)to, (float?)from, delay, duration, repeat, easingType, easingMode); } else { AddXamlAnimationFactory(Properties.Xaml.Translation(axis), to, from, delay, duration, repeat, easingType, easingMode); } return(this); }
public AnimationBuilder Rotation( double to, double?from = null, TimeSpan?delay = null, TimeSpan?duration = null, RepeatOption?repeat = null, EasingType easingType = DefaultEasingType, EasingMode easingMode = DefaultEasingMode, FrameworkLayer layer = FrameworkLayer.Composition) { if (layer == FrameworkLayer.Composition) { AddCompositionAnimationFactory(nameof(Visual.RotationAngle), (float)to, (float?)from, delay, duration, repeat, easingType, easingMode); } else { double?fromDegrees = from * Math.PI / 180; double toDegrees = to * Math.PI / 180; AddXamlTransformDoubleAnimationFactory(nameof(CompositeTransform.Rotation), toDegrees, fromDegrees, delay, duration, repeat, easingType, easingMode); } return(this); }
public AnimationBuilder NormalizedKeyFrames <T>( string property, Action <INormalizedKeyFrameAnimationBuilder <T> > build, TimeSpan?delay = null, TimeSpan?duration = null, RepeatOption?repeatOption = null, FrameworkLayer layer = FrameworkLayer.Composition) where T : unmanaged { if (layer == FrameworkLayer.Composition) { NormalizedKeyFrameAnimationBuilder <T> .Composition builder = new( property, delay, duration ?? DefaultDuration, repeatOption ?? RepeatOption.Once); build(builder); this.compositionAnimationFactories.Add(builder); } else { NormalizedKeyFrameAnimationBuilder <T> .Xaml builder = new( property, delay, duration ?? DefaultDuration, repeatOption ?? RepeatOption.Once); build(builder); this.xamlAnimationFactories.Add(builder); } return(this); }
private sealed record PropertyAnimationBuilder <T>( AnimationBuilder Builder, string Property, FrameworkLayer Layer) : IPropertyAnimationBuilder <T>
public IPropertyAnimationBuilder <double> Opacity(FrameworkLayer layer = FrameworkLayer.Composition) { return(new PropertyAnimationBuilder <double>(this, nameof(Visual.Opacity), layer)); }