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; }
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; } }
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; }
public virtual void OnAttachToListView(ListViewBase listView) { _listView = listView; if (listView != null && _compositor == null) { _compositor = _listView.GetVisual().Compositor; _elementImplicitAnimation = ImplicitAnimationFactory.CreateListOffsetAnimationCollection(_compositor); } }
private UsersDialog() { this.InitializeComponent(); _compositor = ElementCompositionPreview.GetElementVisual(this).Compositor; _elementImplicitAnimation = _compositor.CreateImplicitAnimationCollection(); _elementImplicitAnimation["Offset"] = CreateOffsetAnimation(); DataContext = this; Loaded += UsersDialogLoaded; }
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; } }
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); }
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(); }
protected override void OnDisconnected() { if (CompositionBrush != null) { CompositionBrush.Dispose(); CompositionBrush = null; ColorImplicitAnimations.Dispose(); ColorImplicitAnimations = null; ColorAnimation.Dispose(); ColorAnimation = null; } }
public HashtagView() { InitializeComponent(); Current = this; _compositor = ElementCompositionPreview.GetElementVisual(this).Compositor; _elementImplicitAnimation = _compositor.CreateImplicitAnimationCollection(); _refreshButtonVisual = RefreshButton.GetVisual(); _goUpButtonVisual = GoUpButton.GetVisual(); _elementImplicitAnimation["Opacity"] = CreateOpacityAnimation(); Loaded += HashtagViewLoaded; }
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; }
public ArchiveView() { this.InitializeComponent(); Current = this; _compositor = ElementCompositionPreview.GetElementVisual(this).Compositor; _elementImplicitAnimation = _compositor.CreateImplicitAnimationCollection(); _elementImplicitAnimation["Opacity"] = CreateOpacityAnimation(); _refreshButtonVisual = RefreshButton.GetVisual(); Loaded += SavedPostsViewLoaded; }
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 }); }
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(); }
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; }
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; }
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; } }
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; }
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; }
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); }
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; }
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); }
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; } } }
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; }
/// <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); }