void MainWindow_Loaded(object sender, RoutedEventArgs e) { WindowState = WindowState.Maximized; Mouse.OverrideCursor = Cursors.None; this.DataContext = this; OpacityMaskImage = new BitmapImage(new Uri(@"pack://application:,,,/SntValentineScreensaver;component/Images/HeartOpacityMask.png", UriKind.Absolute)); OpacityBrush = new ImageBrush(OpacityMaskImage); //InitImageArray(); //LoadImages(ImageName.Start); var columnCount = TheGrid.ColumnDefinitions.Count; var rowCount = TheGrid.RowDefinitions.Count; for (var i = 0; i < columnCount; i++) { ImagesArray.Add(new List <HeartCell>(rowCount)); for (var j = 0; j < rowCount; j++) { var vp3d = new Viewport3D(); var camera = CreateCamera(); vp3d.Camera = camera; var light = CreateLight(); vp3d.Children.Add(light); var transform = new RotateTransform3D(new AxisAngleRotation3D(new Vector3D(0, 1, 0), 0)); var vp2d3d = CreateViewPort(transform); vp3d.Children.Add(vp2d3d); vp3d.SetValue(Grid.ColumnProperty, i); vp3d.SetValue(Grid.RowProperty, j); TheGrid.Children.Add(vp3d); var cell = new HeartCell() { ViewPort = vp2d3d, Transform = transform }; ImagesArray[i].Add(cell); } } _animationGlobalTimer = new Timer(); _animationGlobalTimer.Interval = 5000; _animationGlobalTimer.Enabled = true; _animationGlobalTimer.Start(); _animationGlobalTimer.Tick += OnGlobalTimerTick; //TransformGroup group = new TransformGroup(); //double width = this.MainGrid.RenderSize.Width; //DoubleAnimation animation = new DoubleAnimation((width / 2) * -1, width / 2 + logo.ActualWidth, new Duration(new TimeSpan(0, 0, 0, 10))); //animation.RepeatBehavior = RepeatBehavior.Forever; //TranslateTransform tt = new TranslateTransform(-logo.ActualWidth * 2, 0); //logo.RenderTransform = group; //logo.Width = 200; //logo.Height = 200; //group.Children.Add(tt); //tt.BeginAnimation(TranslateTransform.XProperty, animation); }