Beispiel #1
0
        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);
        }