private async void Button_Click(object sender, RoutedEventArgs e) { for (int i = 0; i < 11; i++) { var panel = new StackPanel { Orientation = Orientation.Horizontal, VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center }; var heartLeft = new Image { Height = 50, Width = 24, Source = (SvgImageSource)this.Resources["LeftHeart"] }; var heartRight = new Image { Height = 50, Width = 24, Source = (SvgImageSource)this.Resources["LeftHeart"], RenderTransformOrigin = new Point(0.5, 0.5), RenderTransform = new CompositeTransform { ScaleX = -1, ScaleY = 1 }, Margin = new Thickness(-1, 0, 0, 0) }; panel.Children.Add(heartLeft); panel.Children.Add(heartRight); Root.Children.Add(panel); var c = CompositionFactory.CreateCenteringExpression(1, 0.5); //var hl = heartLeft.EnableCompositionTranslation().GetVisual(); //hl.StartAnimation(c); //hl.StartAnimation(CreateFlap(heartLeft)); //var hr = heartRight.EnableCompositionTranslation().GetVisual(); //hr.StartAnimation(c); //hr.StartAnimation(CreateFlap(heartRight)); panel.EnableCompositionTranslation(); PlayDie(panel, _rand.Next(2, 30) / 100d); _ = Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async() => { await Task.Delay(1000); Root.Children.Remove(panel); }); } }
public SunsetView() { this.InitializeComponent(); // 1. Init resources _rootVisual = this.GetVisual(); _rand = new Random(); var c = _rootVisual.Compositor; // 2. Create Brushes _grad = c.CreateLinearGradientBrush(); _grad.ColorStops.Add(c.CreateColorGradientStop(0, MediaExtensions.FromHex("#E500780A"))); _grad.ColorStops.Add(c.CreateColorGradientStop(0.5f, MediaExtensions.FromHex("#E55D8200"))); _grad.ColorStops.Add(c.CreateColorGradientStop(1, MediaExtensions.FromHex("#E55D780A"))); _grad.StartPoint = new Vector2(0, 0); _grad.EndPoint = new Vector2(0, 0.5f); _shad = c.CreateColorBrush(); _shad.Color = Color.FromArgb(100, 0, 0, 0); // 3. Create grass geometry & resources _geom = c.CreateEllipseGeometry(); _geom.Radius = new Vector2(4, 150); _geom.Center = new Vector2(4, 150); _cent = CompositionFactory.CreateCenteringExpression(0.5, 0.5); _grassShape = c.CreateSpriteShape(_geom); _grassShape.FillBrush = _grad; _shadowShape = c.CreateSpriteShape(_geom); _shadowShape.FillBrush = _shad; _grassOffset = c.CreateExpressionAnimation() .SetTarget("Offset") .SetParameter("Root", _rootVisual) .SetExpression("Vector3(Root.Size.X * percent, Root.Size.Y - (this.Target.Size.Y * 0.5f), 0f)"); _shadowOffset = c.CreateExpressionAnimation() .SetTarget(nameof(Visual.Offset)) .SetExpression("Caster.Offset"); _shadowRotation = c.CreateExpressionAnimation() .SetTarget(nameof(Visual.RotationAngleInDegrees)) .SetExpression("Caster.RotationAngleInDegrees"); // 4. Create blades for (int i = 0; i < 250; i++) { PlantGrassSeed(); } // 5. Create blur for shadow CreateBlurLayer(); }