Ejemplo n.º 1
0
        private void CreateAnimations()
        {
            var compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;

            var offsetAnimation = compositor.CreateVector3KeyFrameAnimation();

            offsetAnimation.Target = nameof(Visual.Offset);
            offsetAnimation.InsertExpressionKeyFrame(1.0f, "this.FinalValue");
            offsetAnimation.Duration = TimeSpan.FromMilliseconds(800);

            var opacityAnimation = compositor.CreateScalarKeyFrameAnimation();

            opacityAnimation.Target = nameof(Visual.Opacity);
            opacityAnimation.InsertKeyFrame(0.2f, 0.5f);
            opacityAnimation.InsertKeyFrame(0.8f, 0.5f);
            opacityAnimation.InsertExpressionKeyFrame(1.0f, "this.FinalValue");
            opacityAnimation.Duration = TimeSpan.FromMilliseconds(800);

            var group = compositor.CreateAnimationGroup();

            group.Add(offsetAnimation);
            group.Add(opacityAnimation);

            animations = compositor.CreateImplicitAnimationCollection();
            animations[nameof(Visual.Offset)] = group;
        }
        private void CreateAnimations()
        {
            var compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;

            var offsetAnimation = compositor.CreateVector3KeyFrameAnimation();

            offsetAnimation.Target = nameof(Visual.Offset);
            offsetAnimation.InsertExpressionKeyFrame(1.0f, "this.FinalValue");
            offsetAnimation.Duration = TimeSpan.FromMilliseconds(800);

            var opacityAnimation = compositor.CreateScalarKeyFrameAnimation();

            opacityAnimation.Target = nameof(Visual.Opacity);
            opacityAnimation.InsertKeyFrame(0.2f, 0.5f);
            opacityAnimation.InsertKeyFrame(0.8f, 0.5f);
            opacityAnimation.InsertExpressionKeyFrame(1.0f, "this.FinalValue");
            opacityAnimation.Duration = TimeSpan.FromMilliseconds(800);

            var group = compositor.CreateAnimationGroup();
            group.Add(offsetAnimation);
            group.Add(opacityAnimation);

            animations = compositor.CreateImplicitAnimationCollection();
            animations[nameof(Visual.Offset)] = group;
        }
Ejemplo n.º 3
0
        private void EnsureImplicitAnimations()
        {
            if (_implicitAnimations == null)
            {
                var compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;

                var offsetAnimation = compositor.CreateVector3KeyFrameAnimation();
                offsetAnimation.Target = nameof(Visual.Offset);
                offsetAnimation.InsertExpressionKeyFrame(1.0f, "this.FinalValue");
                offsetAnimation.Duration = TimeSpan.FromMilliseconds(400);

                var rotationAnimation = compositor.CreateScalarKeyFrameAnimation();
                rotationAnimation.Target = nameof(Visual.RotationAngle);
                rotationAnimation.InsertKeyFrame(.5f, 0.160f);
                rotationAnimation.InsertKeyFrame(1f, 0f);
                rotationAnimation.Duration = TimeSpan.FromSeconds(400);

                var animationGroup = compositor.CreateAnimationGroup();
                animationGroup.Add(offsetAnimation);
                animationGroup.Add(rotationAnimation);

                _implicitAnimations = compositor.CreateImplicitAnimationCollection();
                _implicitAnimations[nameof(Visual.Offset)] = animationGroup;
            }
        }
        private static void AssignReorderAnimation(ListViewBase listView, TimeSpan duration)
        {
            Compositor compositor = ElementCompositionPreview.GetElementVisual(listView).Compositor;
            ImplicitAnimationCollection animationCollection = (ImplicitAnimationCollection)listView.GetValue(ReorderAnimationProperty);

            if (animationCollection is null)
            {
                animationCollection = compositor.CreateImplicitAnimationCollection();

                listView.SetValue(ReorderAnimationProperty, animationCollection);
            }

            if (duration == TimeSpan.Zero)
            {
                animationCollection.Remove(nameof(Visual.Offset));
            }
            else
            {
                Vector3KeyFrameAnimation offsetAnimation = compositor.CreateVector3KeyFrameAnimation();

                offsetAnimation.InsertExpressionKeyFrame(1.0f, "this.FinalValue");
                offsetAnimation.Duration = duration;
                offsetAnimation.Target   = nameof(Visual.Offset);

                CompositionAnimationGroup animationGroup = compositor.CreateAnimationGroup();

                animationGroup.Add(offsetAnimation);

                animationCollection[nameof(Visual.Offset)] = animationGroup;
            }
        }
Ejemplo n.º 5
0
        public ShowHideImplicitWebview()
        {
            this.InitializeComponent();

            _compositor     = ElementCompositionPreview.GetElementVisual(this).Compositor;
            imageDictionary = new Dictionary <Ellipse, ImageItem>();

            _primaryImageScale   = new Vector3(1, 1, 1);
            _secondaryImageScale = new Vector3(0.8f, 0.8f, 0.8f);
            _tertiaryImageScale  = new Vector3(0.6f, 0.6f, 0.6f);

            this.CreateImageObjects();

            // Implicit show animation for webview
            var showWebviewAnimation = _compositor.CreateScalarKeyFrameAnimation();

            showWebviewAnimation.InsertKeyFrame(0.0f, 0.0f);
            showWebviewAnimation.InsertKeyFrame(1.0f, 1.0f);
            showWebviewAnimation.Target   = nameof(Visual.Opacity);
            showWebviewAnimation.Duration = TimeSpan.FromSeconds(0.5f);
            ElementCompositionPreview.SetImplicitShowAnimation(PageWebview, showWebviewAnimation);

            // Implicit hide animation for webview
            var hideWebviewAnimation = _compositor.CreateScalarKeyFrameAnimation();

            hideWebviewAnimation.InsertKeyFrame(0.0f, 1.0f);
            hideWebviewAnimation.InsertKeyFrame(1.0f, 0.0f);
            hideWebviewAnimation.Target   = nameof(Visual.Opacity);
            hideWebviewAnimation.Duration = TimeSpan.FromSeconds(0.5f);
            ElementCompositionPreview.SetImplicitHideAnimation(PageWebview, hideWebviewAnimation);

            // Implicit show animation for the images
            var showImagesAnimation = _compositor.CreateScalarKeyFrameAnimation();

            showImagesAnimation.InsertKeyFrame(0.0f, 0.0f);
            showImagesAnimation.InsertKeyFrame(1.0f, 1.0f);
            showImagesAnimation.Target   = nameof(Visual.Opacity);
            showImagesAnimation.Duration = TimeSpan.FromSeconds(1.0f);
            ElementCompositionPreview.SetImplicitShowAnimation(CircleCanvas, showImagesAnimation);

            // Offset and scale implicit animation set up for images
            _implicitAnimationCollection = _compositor.CreateImplicitAnimationCollection();
            // Offset implicit animation
            var offsetAnimation = _compositor.CreateVector3KeyFrameAnimation();

            offsetAnimation.InsertExpressionKeyFrame(1.0f, "this.FinalValue");
            offsetAnimation.Duration = TimeSpan.FromSeconds(1.0f);
            offsetAnimation.Target   = nameof(Visual.Offset);
            // Scale implicit animation
            var scaleAnimation = _compositor.CreateVector3KeyFrameAnimation();

            scaleAnimation.InsertExpressionKeyFrame(1.0f, "this.FinalValue");
            scaleAnimation.Duration = TimeSpan.FromSeconds(1.0f);
            scaleAnimation.Target   = nameof(Visual.Scale);
            // Add to collection
            _implicitAnimationCollection["Offset"] = offsetAnimation;
            _implicitAnimationCollection["Scale"]  = scaleAnimation;
        }
Ejemplo n.º 6
0
 public virtual void OnAttachToListView(ListViewBase listView)
 {
     _listView = listView;
     if (listView != null && _compositor == null)
     {
         _compositor = _listView.GetVisual().Compositor;
         _elementImplicitAnimation = ImplicitAnimationFactory.CreateListOffsetAnimationCollection(_compositor);
     }
 }
Ejemplo n.º 7
0
        private UsersDialog()
        {
            this.InitializeComponent();
            _compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;

            _elementImplicitAnimation           = _compositor.CreateImplicitAnimationCollection();
            _elementImplicitAnimation["Offset"] = CreateOffsetAnimation();
            DataContext = this;

            Loaded += UsersDialogLoaded;
        }
Ejemplo n.º 8
0
        public Photos()
        {
            this.InitializeComponent();
            _compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;

            // Create ImplicitAnimations Collection.
            _elementImplicitAnimation = _compositor.CreateImplicitAnimationCollection();

            //Define trigger and animation that should play when the trigger is triggered.
            _elementImplicitAnimation["Offset"] = createOffsetAnimation();
        }
        private void EnableAnimations_Checked(object sender, RoutedEventArgs e)
        {
            ImplicitAnimationCollection implicitAnimationCollection = _compositor.CreateImplicitAnimationCollection();

            implicitAnimationCollection["Offset"] = CreateOffsetAnimation();
            implicitAnimationCollection["Scale"]  = CreateScaleAnimation();
            foreach (var child in _root.Children)
            {
                child.ImplicitAnimations = implicitAnimationCollection;
            }
        }
Ejemplo n.º 10
0
        public static CompositionCommitBatch ApplyImplicitAnimation(this Visual target, TimeSpan duration)
        {
            var myBatch = target.Compositor.GetCommitBatch(CompositionBatchTypes.Animation);

            target.Opacity = 0.0f;
            ImplicitAnimationCollection implicitAnimationCollection = target.Compositor.CreateImplicitAnimationCollection();

            implicitAnimationCollection[nameof(Visual.Opacity)] = CreateOpacityAnimation(target.Compositor, duration);
            target.ImplicitAnimations = implicitAnimationCollection;
            return(myBatch);
        }
Ejemplo n.º 11
0
        public Photos()
        {
            this.InitializeComponent();
            _compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;

            // Create ImplicitAnimations Collection. 
            _elementImplicitAnimation = _compositor.CreateImplicitAnimationCollection();

            //Define trigger and animation that should play when the trigger is triggered. 
            _elementImplicitAnimation["Offset"] = createOffsetAnimation();

        }
Ejemplo n.º 12
0
 protected override void OnDisconnected()
 {
     if (CompositionBrush != null)
     {
         CompositionBrush.Dispose();
         CompositionBrush = null;
         ColorImplicitAnimations.Dispose();
         ColorImplicitAnimations = null;
         ColorAnimation.Dispose();
         ColorAnimation = null;
     }
 }
Ejemplo n.º 13
0
        public HashtagView()
        {
            InitializeComponent();
            Current     = this;
            _compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;

            _elementImplicitAnimation = _compositor.CreateImplicitAnimationCollection();

            _refreshButtonVisual = RefreshButton.GetVisual();
            _goUpButtonVisual    = GoUpButton.GetVisual();
            _elementImplicitAnimation["Opacity"] = CreateOpacityAnimation();
            Loaded += HashtagViewLoaded;
        }
Ejemplo n.º 14
0
        private void ImitializeAnimations()
        {
            var compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;

            var offsetImplicit = compositor.CreateVector3KeyFrameAnimation();

            offsetImplicit.Target = "Offset";
            offsetImplicit.InsertExpressionKeyFrame(1f, "This.FinalValue");
            offsetImplicit.Duration = TimeSpan.FromMilliseconds(300);

            _implicitAnimations           = compositor.CreateImplicitAnimationCollection();
            _implicitAnimations["Offset"] = offsetImplicit;
        }
Ejemplo n.º 15
0
        public ArchiveView()
        {
            this.InitializeComponent();
            Current = this;

            _compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;

            _elementImplicitAnimation = _compositor.CreateImplicitAnimationCollection();

            _elementImplicitAnimation["Opacity"] = CreateOpacityAnimation();
            _refreshButtonVisual = RefreshButton.GetVisual();

            Loaded += SavedPostsViewLoaded;
        }
Ejemplo n.º 16
0
        public Photos()
        {
            this.InitializeComponent();
            _compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;
            Model       = new LocalDataSource();

            // Create ImplicitAnimations Collection.
            _elementImplicitAnimation = _compositor.CreateImplicitAnimationCollection();

            //Define trigger and animation that should play when the trigger is triggered.
            _elementImplicitAnimation["Offset"] = createOffsetAnimation();

            gridView.ItemsSource = Model.AggregateDataSources(new ObservableCollection <Thumbnail>[] { Model.Landscapes, Model.Nature });
        }
Ejemplo n.º 17
0
        private UsersDialog()
        {
            this.InitializeComponent();
            _compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;

            // Create ImplicitAnimations Collection.
            _elementImplicitAnimation = _compositor.CreateImplicitAnimationCollection();

            //Define trigger and animation that should play when the trigger is triggered.
            _elementImplicitAnimation["Offset"] = CreateOffsetAnimation();
            DataContext = this;

            Loaded += UsersDialogLoaded;
        }
        /// <summary>
        /// Updates the reorder animation to each container, whenever one changes.
        /// </summary>
        /// <param name="sender">The sender <see cref="ListViewBase"/> instance.</param>
        /// <param name="args">The <see cref="ContainerContentChangingEventArgs"/> instance for the current container change.</param>
        private static void OnContainerContentChanging(ListViewBase sender, ContainerContentChangingEventArgs args)
        {
            if (args.InRecycleQueue)
            {
                PokeUIElementZIndex(args.ItemContainer);
            }
            else
            {
                Visual visual = ElementCompositionPreview.GetElementVisual(args.ItemContainer);
                ImplicitAnimationCollection animationCollection = sender.GetValue(ReorderAnimationProperty) as ImplicitAnimationCollection;

                visual.ImplicitAnimations = animationCollection;
            }
        }
        public ConnectedAnimationPage()
        {
            this.InitializeComponent();
            enableAnimation.IsChecked = ConnectedAnimationData.AnimationIsEnabled;
            ViewModel = DataContext as ConnectedAnimationViewModel;

            _compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;

            // Create ImplicitAnimations Collection.
            _elementImplicitAnimation = _compositor.CreateImplicitAnimationCollection();

            //Define trigger and animation that should play when the trigger is triggered.
            _elementImplicitAnimation["Offset"] = CreateOffsetAnimation();
        }
Ejemplo n.º 20
0
        public LikedPostView()
        {
            this.InitializeComponent();
            Current     = this;
            _compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;

            _elementImplicitAnimation = _compositor.CreateImplicitAnimationCollection();

            //_elementImplicitAnimation["Offset"] = CreateOffsetAnimation();
            _elementImplicitAnimation["Opacity"] = CreateOpacityAnimation();
            _refreshButtonVisual = RefreshButton.GetVisual();

            //_headerGridVisual = HeaderGrid.GetVisual();
            Loaded += LikedPostViewLoaded;
        }
Ejemplo n.º 21
0
        public ProfileDetailsView()
        {
            this.InitializeComponent();
            Current     = this;
            _compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;

            _elementImplicitAnimation = _compositor.CreateImplicitAnimationCollection();

            _elementImplicitAnimation["Opacity"] = CreateOpacityAnimation();

            _goUpButtonVisual    = GoUpButton.GetVisual();
            _refreshButtonVisual = RefreshButton.GetVisual();
            Loaded += ProfileDetailsViewLoaded;
            EditProfileUc.OnCompleted += EditProfileUc_OnCompleted;
        }
Ejemplo n.º 22
0
        public LikersView()
        {
            this.InitializeComponent();
            Current     = this;
            _compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;

            // Create ImplicitAnimations Collection.
            _elementImplicitAnimation = _compositor.CreateImplicitAnimationCollection();

            //Define trigger and animation that should play when the trigger is triggered.
            _elementImplicitAnimation["Offset"] = CreateOffsetAnimation();

            _goUpButtonVisual = GoUpButton.GetVisual();
            Loaded           += LikersViewLoaded;
        }
        private void EnableAnimationOnChildren(bool animationIsEnable)
        {
            ImplicitAnimationCollection implicitAnimationCollection = null;


            if (animationIsEnable)
            {
                implicitAnimationCollection           = _compositor.CreateImplicitAnimationCollection();
                implicitAnimationCollection["Offset"] = CreateOffsetAnimation();
            }
            foreach (var child in _root.Children)
            {
                child.ImplicitAnimations = implicitAnimationCollection;
            }
        }
Ejemplo n.º 24
0
        private void CreateOffsetAnimation()
        {
            if (_implicitOffsetAnimation != null)
            {
                return;
            }

            var offsetAnimation = Window.Current.Compositor.CreateVector3KeyFrameAnimation();

            offsetAnimation.Target = nameof(PointLight.Offset);
            offsetAnimation.InsertExpressionKeyFrame(1.0f, "this.FinalValue");
            offsetAnimation.Duration = TimeSpan.FromMinutes(0.6);

            _implicitOffsetAnimation = Window.Current.Compositor.CreateImplicitAnimationCollection();
            _implicitOffsetAnimation[nameof(Visual.Offset)] = offsetAnimation;
        }
Ejemplo n.º 25
0
        private void OnCreateResources(CanvasAnimatedControl sender, CanvasCreateResourcesEventArgs args)
        {
            _c = Window.Current.Compositor;
            _g = _c.CreateCompositionGenerator();

            _rootShape      = _c.CreateShapeVisual();
            _rootShape.Size = new Vector2((float)RenderGrid.ActualWidth, (float)RenderGrid.ActualHeight);
            _rootSize       = _rootShape.Size.ToSize();

            var rectGeom = _c.CreatePathGeometry(new CompositionPath(CanvasGeometry.CreateRectangle(_g.Device, new Rect(new Point(), _rootSize))));
            var bgShape  = _c.CreateSpriteShape(rectGeom);

            bgShape.FillBrush = _c.CreateColorBrush(CanvasObject.CreateColor("#161616"));

            _rootShape.Shapes.Add(bgShape);

            _slideLeftImplicitAnimationCollection = _c.CreateImplicitAnimationCollection();
            var slideLeftAnim = _c.GenerateVector2KeyFrameAnimation()
                                .HavingDuration(700)
                                .ForTarget(() => _c.CreateSpriteShape().Offset);

            slideLeftAnim.InsertFinalValueKeyFrame(1f, _c.CreateEaseInOutBackEasingFunction());
            _slideLeftImplicitAnimationCollection["Offset"] = slideLeftAnim.Animation;

            _slideRightImplicitAnimationCollection = _c.CreateImplicitAnimationCollection();
            var slideRightAnim = _c.GenerateVector2KeyFrameAnimation()
                                 .HavingDuration(2000)
                                 .ForTarget(() => _c.CreateSpriteShape().Offset);

            slideRightAnim.InsertFinalValueKeyFrame(1f, _c.CreateEaseInOutBackEasingFunction());
            _slideRightImplicitAnimationCollection["Offset"] = slideRightAnim.Animation;

            for (var i = 0; i < MaxShapeCount; i++)
            {
                var shape = _c.CreateSpriteShape(_c.CreatePathGeometry(GetClip(_rootSize)));
                shape.Offset    = HideOffset;
                shape.FillBrush = _c.CreateColorBrush(_colors[i]);
                _rootShape.Shapes.Add(shape);
            }

            _selIndex = MaxShapeCount;
            _rootShape.Shapes[_selIndex].Offset = Vector2.Zero;

            ElementCompositionPreview.SetElementChildVisual(RenderGrid, _rootShape);
            PrevBtn.IsEnabled = false;
        }
Ejemplo n.º 26
0
        protected override void OnConnected()
        {
            if (CompositionBrush == null)
            {
                CompositionBrush = Window.Current.Compositor.CreateColorBrush(Color);

                ColorAnimation = Window.Current.Compositor.CreateColorKeyFrameAnimation();
                ColorAnimation.InsertExpressionKeyFrame(1f, "this.FinalValue");
                ColorAnimation.Duration = Duration;
                ColorAnimation.Target   = "Color";

                ColorImplicitAnimations          = Window.Current.Compositor.CreateImplicitAnimationCollection();
                ColorImplicitAnimations["Color"] = ColorAnimation;

                CompositionBrush.ImplicitAnimations = ColorImplicitAnimations;
            }
        }
        public static ImplicitAnimationCollection CreateImplicitAnimation(this ImplicitAnimationCollection source, string Target, TimeSpan?Duration = null)
        {
            KeyFrameAnimation animation = null;

            switch (Target.ToLower())
            {
            case "offset":
            case "scale":
            case "centerPoint":
            case "rotationAxis":
                animation = source.Compositor.CreateVector3KeyFrameAnimation();
                break;

            case "size":
                animation = source.Compositor.CreateVector2KeyFrameAnimation();
                break;

            case "opacity":
            case "blueRadius":
            case "rotationAngle":
            case "rotationAngleInDegrees":
                animation = source.Compositor.CreateScalarKeyFrameAnimation();
                break;

            case "color":
                animation = source.Compositor.CreateColorKeyFrameAnimation();
                break;
            }
            if (animation == null)
            {
                throw new ArgumentNullException("未知的Target");
            }
            if (!Duration.HasValue)
            {
                Duration = TimeSpan.FromSeconds(0.2d);
            }
            animation.InsertExpressionKeyFrame(1f, "this.FinalValue");
            animation.Duration = Duration.Value;
            animation.Target   = Target;

            source[Target] = animation;
            return(source);
        }
Ejemplo n.º 28
0
        public ExploreView()
        {
            this.InitializeComponent();
            Current = this;
            //DataContext = ExploreVM;

            //NavigationCacheMode = NavigationCacheMode.Enabled;

            _compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;

            _elementImplicitAnimation = _compositor.CreateImplicitAnimationCollection();

            //_elementImplicitAnimation["Offset"] = CreateOffsetAnimation();
            _elementImplicitAnimation["Opacity"] = CreateOpacityAnimation();
            _refreshButtonVisual = RefreshButton.GetVisual();

            //_headerGridVisual = HeaderGrid.GetVisual();
            Loaded += ExploreViewLoaded;
        }
Ejemplo n.º 29
0
        public static ImplicitAnimationCollection CreateReorderAnimationCollection(MUXC.ItemsRepeater itemsRepeater)
        {
            Compositor compositor = ElementCompositionPreview.GetElementVisual(itemsRepeater).Compositor;
            Vector3KeyFrameAnimation offsetAnimation = compositor.CreateVector3KeyFrameAnimation();

            offsetAnimation.InsertExpressionKeyFrame(1.0f, "this.FinalValue");
            offsetAnimation.Duration = TimeSpan.FromMilliseconds(ReorderAnimationDuration);
            offsetAnimation.Target   = nameof(Visual.Offset);

            CompositionAnimationGroup animationGroup = compositor.CreateAnimationGroup();

            animationGroup.Add(offsetAnimation);

            ImplicitAnimationCollection animationCollection = compositor.CreateImplicitAnimationCollection();

            animationCollection[nameof(Visual.Offset)] = animationGroup;

            return(animationCollection);
        }
Ejemplo n.º 30
0
        private void EnsureImplicitAnimations(FrameworkElement element)
        {
            if (_implicitAnimations == null)
            {
                Compositor compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;

                CubicBezierEasingFunction easeIn = compositor.CreateCubicBezierEasingFunction(new Vector2(0.215f, 0.61f), new Vector2(0.355f, 1f));

                Vector3KeyFrameAnimation offsetAnimation = compositor.CreateVector3KeyFrameAnimation();
                offsetAnimation.Target = nameof(Visual.Offset);
                offsetAnimation.InsertExpressionKeyFrame(1.0f, "this.FinalValue", easeIn);
                offsetAnimation.Duration = TimeSpan.FromMilliseconds(500);

                CompositionAnimationGroup animationGroup = compositor.CreateAnimationGroup();
                animationGroup.Add(offsetAnimation);

                _implicitAnimations = compositor.CreateImplicitAnimationCollection();
                _implicitAnimations[nameof(Visual.Offset)] = animationGroup;
            }
        }
 private void UpdateAnimationState(bool animate)
 {
     if (animate)
     {
         ImplicitAnimationCollection implicitAnimationCollection = _compositor.CreateImplicitAnimationCollection();
         implicitAnimationCollection["Offset"] = CreateOffsetAnimation();
         implicitAnimationCollection["Scale"]  = CreateScaleAnimation();
         foreach (var child in _root.Children)
         {
             child.ImplicitAnimations = implicitAnimationCollection;
         }
     }
     else
     {
         foreach (var child in _root.Children)
         {
             child.ImplicitAnimations = null;
         }
     }
 }
Ejemplo n.º 32
0
        internal ImplicitAnimationCollection GetImplicitAnimationCollection(UIElement parent)
        {
            Compositor compositor = ElementCompositionPreview.GetElementVisual(parent).Compositor;
            ImplicitAnimationCollection animations = compositor.CreateImplicitAnimationCollection();

            foreach (IImplicitTimeline timeline in this)
            {
                CompositionAnimation animation = timeline.GetAnimation(parent, out string?target);

                target ??= animation.Target;

                if (!animations.ContainsKey(target))
                {
                    animations[target] = animations.Compositor.CreateAnimationGroup();
                }

                ((CompositionAnimationGroup)animations[target]).Add(animation);
            }

            return(animations);
        }
        /// <summary>
        /// Initialize all Composition related stuff here (Compositor, Animations etc)
        /// </summary>
        private void InitializeComposition()
        {
            var rootVisual = ElementCompositionPreview.GetElementVisual(this);
            // Compositor
            _compositor = rootVisual.Compositor;

            // Final Value Expressions
            var vector3Expr = _compositor.CreateFinalValueExpression<Vector3>();
            var scalarExpr = _compositor.CreateFinalValueExpression<float>();

            // Offset Animation
            var offsetAnimation = _compositor.CreateKeyFrameAnimation<Vector3>()
                                             .HavingDuration(DefaultFluidAnimationDuration)
                                             .ForTarget(() => rootVisual.Offset);
            offsetAnimation.InsertExpressionKeyFrame(1f, vector3Expr);

            // Opacity Animation
            var opacityAnimation = _compositor.CreateKeyFrameAnimation<float>()
                                              .HavingDuration(DefaultOpacityAnimationDuration)
                                              .ForTarget(() => rootVisual.Opacity);
            opacityAnimation.InsertExpressionKeyFrame(1f, scalarExpr);

            // Scale Animation
            var scaleAnimation = _compositor.CreateKeyFrameAnimation<Vector3>()
                                            .HavingDuration(DefaultFluidAnimationDuration)
                                            .ForTarget(() => rootVisual.Scale);
            scaleAnimation.InsertExpressionKeyFrame(1f, vector3Expr);

            // ImplicitAnimation
            _implicitAnimationCollection = _compositor.CreateImplicitAnimationCollection();
            _implicitAnimationCollection["Offset"] = offsetAnimation.Animation;
            _implicitAnimationCollection["Opacity"] = opacityAnimation.Animation;
            _implicitAnimationCollection["Scale"] = scaleAnimation.Animation;

            // ImplicitDragAnimation
            _implicitDragAnimationCollection = _compositor.CreateImplicitAnimationCollection();
            _implicitDragAnimationCollection["Opacity"] = opacityAnimation.Animation;
            _implicitDragAnimationCollection["Scale"] = scaleAnimation.Animation;
        }
Ejemplo n.º 34
0
        /// <summary>
        /// Initialize all Composition related stuff here (Compositor, Animations etc)
        /// </summary>
        private void InitializeComposition()
        {
            var rootVisual = ElementCompositionPreview.GetElementVisual(this);
            // Compositor
            _compositor = rootVisual.Compositor;
            // Composition Generator
            _generator = CompositionGeneratorFactory.GetCompositionGenerator(_compositor);

            // Final Value Expressions
            var vector3Expr = _compositor.CreateFinalValueExpression<Vector3>();
            var scalarExpr = _compositor.CreateFinalValueExpression<float>();

            // Opacity Animation
            var opacityAnimation = _compositor.CreateKeyFrameAnimation<float>()
                                              .HavingDuration(DefaultOpacityAnimationDuration)
                                              .ForTarget(() => rootVisual.Opacity);
            opacityAnimation.InsertExpressionKeyFrame(1f, scalarExpr);

            // Scale Animation
            var scaleAnimation = _compositor.CreateKeyFrameAnimation<Vector3>()
                                            .HavingDuration(DefaultScaleAnimationDuration)
                                            .ForTarget(() => rootVisual.Scale);
            scaleAnimation.InsertExpressionKeyFrame(1f, vector3Expr);

            // ImplicitAnimation
            _implicitAnimationCollection = _compositor.CreateImplicitAnimationCollection();
            _implicitAnimationCollection["Opacity"] = opacityAnimation.Animation;
            _implicitAnimationCollection["Scale"] = scaleAnimation.Animation;

            // Expand Animations
            _expandLeftInset = _compositor.CreateKeyFrameAnimation<float>()
                                          .HavingDuration(InsetAnimationDuration)
                                          .DelayBy(InsetAnimationDelayDuration);

            _expandLeftInset.InsertKeyFrame(1f, 0);

            _expandRightInset = _compositor.CreateKeyFrameAnimation<float>()
                                           .HavingDuration(InsetAnimationDuration)
                                           .DelayBy(InsetAnimationDelayDuration);

            _expandInsetClip = _compositor.CreateKeyFrameAnimation<float>()
                                          .HavingDuration(InsetClipAnimationDuration);

            _expandInsetClip.InsertKeyFrame(1f, 0);

            // Collapse Animations
            _collapseLeftInset = _compositor.CreateKeyFrameAnimation<float>()
                                            .HavingDuration(InsetAnimationDuration);

            _collapseRightInset = _compositor.CreateKeyFrameAnimation<float>()
                                             .HavingDuration(InsetAnimationDuration);

            _collapseInsetClip = _compositor.CreateKeyFrameAnimation<float>()
                                            .HavingDuration(InsetClipAnimationDuration);

            // Root Container
            _rootContainer = _compositor.CreateContainerVisual();

            // Background Layer
            _bgLayer = _compositor.CreateLayerVisual();
            _bgLayer.Size = _rootContainer.Size;
            _bgLayer.CenterPoint = new Vector3(_bgLayer.Size * 0.5f, 0);

            // Top Layer
            _topLayer = _compositor.CreateLayerVisual();
            _topLayer.Size = _rootContainer.Size;

            _rootContainer.Children.InsertAtBottom(_bgLayer);
            _rootContainer.Children.InsertAtTop(_topLayer);

            // Add the rootContainer to the visual tree
            ElementCompositionPreview.SetElementChildVisual(this, _rootContainer);
        }