public async void OkBtn_Click(object sender, RoutedEventArgs e)
        {
            _InProgressClosing            = true;
            chkBoxCreatePreview.IsEnabled = false;
            chkBoxCreateZip.IsEnabled     = false;
            OkBtn.IsEnabled = false;

            GenerateLivelyInfo(layout);
            Rect reviewPanel;

            #region previewgif
            //preview clip (animated gif file).
            if (SaveData.config.PreviewGIF.CaptureGif)
            {
                //generate screen capture images.
                for (int i = 0; i < gifTotalFrames; i++)
                {
                    reviewPanel = WindowOperations.GetAbsolutePlacement(PreviewBorder, true);
                    CaptureWindow.CopyScreen(saveDirectory, i.ToString(CultureInfo.InvariantCulture) + ".jpg",
                                             (int)(((int)reviewPanel.Left + (int)(reviewPanel.Right)) / 2f) - 192 / 2, (int)(((int)reviewPanel.Top + (int)(reviewPanel.Bottom)) / 2f) - 108 / 2, 192, 108); //384,216
                    await Task.Delay(gifAnimationDelay);

                    this.Dispatcher.Invoke(() =>
                    {
                        if ((i + 1) > gifProgressBar.Maximum)
                        {
                            gifProgressBar.Value = gifProgressBar.Maximum;
                        }
                        else
                        {
                            gifProgressBar.Value = i + 1;
                        }
                    });
                }
                //create animated gif from captured images.
                await Task.Run(() => CreateGif());
            }
            else
            {
                await Task.Delay(1000); //wait 1sec before capturing thumbnail..incase wallpaper is not loaded yet.
            }
            #endregion

            #region thumbnail
            // 200x200 thumbnail image capture.
            reviewPanel = WindowOperations.GetAbsolutePlacement(PreviewBorder, true);
            CaptureWindow.CopyScreen(saveDirectory, "lively_t.jpg",
                                     (int)(((int)reviewPanel.Left + (int)(reviewPanel.Right)) / 2f) - 200 / 2, (int)(((int)reviewPanel.Top + (int)(reviewPanel.Bottom)) / 2f) - 200 / 2, 200, 200);

            #endregion

            _InProgressClosing = false;
            this.Close();
        }
Exemple #2
0
        public async void OkBtn_Click(object sender, RoutedEventArgs e)
        {
            _InProgressClosing            = true;
            chkBoxCreatePreview.IsEnabled = false;
            chkBoxCreateZip.IsEnabled     = false;
            OkBtn.IsEnabled = false;

            GenerateLivelyInfo(layout);
            Rect previewPanelPos;
            Size previewPanelSize = WindowOperations.GetElementPixelSize(PreviewBorder);

            #region preview_images
            //preview clip (animated gif file).
            if (SaveData.config.PreviewGIF.CaptureGif)
            {
                //generate screen capture images.
                for (int i = 0; i < gifTotalFrames; i++)
                {
                    //updating the position incase window is moved.
                    previewPanelPos = WindowOperations.GetAbsolutePlacement(PreviewBorder, true);
                    CaptureWindow.CopyScreen(
                        saveDirectory,
                        i.ToString(CultureInfo.InvariantCulture) + ".jpg",
                        (int)previewPanelPos.Left,
                        (int)previewPanelPos.Top,
                        (int)previewPanelSize.Width,
                        (int)previewPanelSize.Height);
                    //SaveData.config.PreviewGIF.GifSize.Width + SaveData.config.PreviewGIF.GifOffsets.X,
                    //SaveData.config.PreviewGIF.GifSize.Height + SaveData.config.PreviewGIF.GifOffsets.Y); //384,216

                    await Task.Delay(gifAnimationDelay);

                    if ((i + 1) > gifProgressBar.Maximum)
                    {
                        gifProgressBar.Value = gifProgressBar.Maximum;
                    }
                    else
                    {
                        gifProgressBar.Value = i + 1;
                    }
                }
                //create animated gif from captured images.
                await Task.Run(() => CreateGif());
            }
            else
            {
                //wait before capturing thumbnail..incase wallpaper is not loaded yet.
                await Task.Delay(100);
            }

            //200x200 thumbnail image capture.
            //updating the position incase window is moved.
            previewPanelPos = WindowOperations.GetAbsolutePlacement(PreviewBorder, true);
            CaptureWindow.CopyScreen(
                saveDirectory,
                "lively_t.jpg",
                (int)previewPanelPos.Left + (int)previewPanelSize.Width / 5,
                (int)previewPanelPos.Top,
                (int)previewPanelSize.Height,
                (int)previewPanelSize.Height);

            #endregion

            _InProgressClosing = false;
            System.Windows.Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, new ThreadStart(delegate
            {
                App.W.LoadWallpaperFromWpDataFolder();
            }));

            this.Close();
        }