private void Draw_Click(object sender, RoutedEventArgs e)
        {
            ResetUiVisibility();
            Canvas.IsEnabled        = true;
            CaptionInput.Visibility = Visibility.Collapsed;
            BasicToolbar.Visibility = Visibility.Collapsed;

            if (DrawToolbar == null)
            {
                FindName(nameof(DrawToolbar));
            }
            if (DrawSlider == null)
            {
                FindName(nameof(DrawSlider));
            }

            DrawToolbar.Visibility = Visibility.Visible;
            DrawSlider.Visibility  = Visibility.Visible;
            DrawSlider.SetDefault(SettingsService.Current.Pencil);

            Canvas.Mode            = PencilCanvasMode.Stroke;
            Canvas.Stroke          = DrawSlider.Stroke;
            Canvas.StrokeThickness = DrawSlider.StrokeThickness;

            Brush.IsChecked = true;
            Erase.IsChecked = false;
            InvalidateToolbar();
        }
Exemple #2
0
        private void mainPictureBox_Paint(object sender, PaintEventArgs e)
        {
            Graphics = e.Graphics;

            if (isFirstFrame)
            {
                Init?.Invoke();
                isFirstFrame = false;
            }

            if (!isPaused)
            {
                Draw();
                CheckKeyboardInput();
                CheckMouseInput();

                foreach (Slider s in sliders)
                {
                    DrawSlider?.Invoke(s);
                }

                foreach (Button b in buttons)
                {
                    DrawButton?.Invoke(b);
                }
            }
        }
        private async void Cancel_Click(object sender, RoutedEventArgs e)
        {
            if (CropToolbar != null && CropToolbar.Visibility == Visibility.Visible)
            {
                // Reset Cropper
                await Cropper.SetSourceAsync(_media.File, _media.EditState.Rotation, _media.EditState.Flip, _media.EditState.Proportions, _media.EditState.Rectangle);

                _rotation      = _media.EditState.Rotation;
                _flip          = _media.EditState.Flip;
                Crop.IsChecked = IsCropped(Cropper.CropRectangle);
                ResetUiVisibility();
            }
            else if (DrawToolbar != null && DrawToolbar.Visibility == Visibility.Visible)
            {
                Canvas.RestoreState();

                ResetUiVisibility();
                SettingsService.Current.Pencil = DrawSlider.GetDefault();
            }
            else
            {
                if (_media is StorageMedia)
                {
                    _media.EditState = _originalMediaEditState; // Reset to state before starting editing
                }
                if (_media is StorageVideo video)
                {
                    video.IsMuted     = _originalVideoIsMuted;
                    video.Compression = _originalVideoCompression;
                }
                ResetUiVisibility();
                Hide(ContentDialogResult.Secondary);
            }
        }
        private void Accept_Click(object sender, RoutedEventArgs e)
        {
            if ((CropToolbar != null && CropToolbar.Visibility == Visibility.Visible) ||
                (!_hasMessageContext && _media.IsVideo))
            {
                var rect = Cropper.CropRectangle;

                TimeSpan trimStartTime;
                TimeSpan trimStopTime;

                if (TrimRange != null)
                {
                    trimStartTime = TimeSpan.FromMilliseconds(TrimRange.Minimum * TrimRange.OriginalDuration.TotalMilliseconds);
                    trimStopTime  = TimeSpan.FromMilliseconds(TrimRange.Maximum * TrimRange.OriginalDuration.TotalMilliseconds);
                }

                if (_media?.EditState is BitmapEditState es)
                {
                    es.Rectangle     = rect;
                    es.Proportions   = Cropper.Proportions;
                    es.Strokes       = Canvas.Strokes;
                    es.Flip          = _flip;
                    es.Rotation      = _rotation;
                    es.TrimStartTime = trimStartTime;
                    es.TrimStopTime  = trimStopTime;
                }
                Crop.IsChecked = IsCropped(rect);
                ResetUiVisibility();
                if (!_hasMessageContext && _media.IsVideo)
                {
                    Hide(ContentDialogResult.Primary);
                }
            }
            else if (DrawToolbar != null && DrawToolbar.Visibility == Visibility.Visible)
            {
                Canvas.SaveState();
                _media.EditState.Strokes = Canvas.Strokes;

                Draw.IsChecked = Canvas.Strokes?.Count > 0;
                ResetUiVisibility();

                SettingsService.Current.Pencil = DrawSlider.GetDefault();
            }
            else
            {
                if (_hasMessageContext)
                {
                    ResetUiVisibility();
                    _media.Caption = CaptionInput.GetFormattedText();
                }
                Hide(ContentDialogResult.Primary);
            }
        }
        private async void Accept_Click(object sender, RoutedEventArgs e)
        {
            if (Cropper.IsCropEnabled)
            {
                if (_media != null)
                {
                    var rect = Cropper.CropRectangle;
                    var w    = Cropper.PixelWidth;
                    var h    = Cropper.PixelHeight;

                    _media.EditState = new BitmapEditState
                    {
                        //Rectangle = new Rect(rect.X * w, rect.Y * h, rect.Width * w, rect.Height * h),
                        Rectangle   = rect,
                        Proportions = Cropper.Proportions,
                        Strokes     = Canvas.Strokes,
                        Flip        = _flip,
                        Rotation    = _rotation
                    };

                    Hide(ContentDialogResult.Primary);
                    return;
                }

                var cropped = await Cropper.CropAsync();

                var drawing = Canvas.Strokes;
                if (drawing != null && drawing.Count > 0)
                {
                    cropped = await ImageHelper.DrawStrokesAsync(cropped, drawing, Cropper.CropRectangle, _rotation, _flip);
                }

                Result = cropped;
                Hide(ContentDialogResult.Primary);
            }
            else
            {
                Canvas.SaveState();

                Cropper.IsCropEnabled = true;
                Canvas.IsEnabled      = false;

                BasicToolbar.Visibility = Visibility.Visible;
                DrawToolbar.Visibility  = Visibility.Collapsed;
                DrawSlider.Visibility   = Visibility.Collapsed;

                SettingsService.Current.Pencil = DrawSlider.GetDefault();
            }
        }
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            ResetUI();

            Canvas.IsEnabled = true;
            if (DrawSlider == null)
            {
                FindName(nameof(DrawSlider));
            }

            DrawSlider.Visibility  = Visibility.Visible;
            Canvas.Mode            = CanvasMode.Stroke;
            Canvas.Stroke          = DrawSlider.Stroke;
            Canvas.StrokeThickness = DrawSlider.StrokeThickness;
            DrawSlider.SetDefault(new Vector2(1f, 0.22f));
            InvalidateToolbar();
        }
        private void Accept_Click(object sender, RoutedEventArgs e)
        {
            if (Cropper.IsCropEnabled)
            {
                var rect = Cropper.CropRectangle;
                var w    = Cropper.PixelWidth;
                var h    = Cropper.PixelHeight;

                TimeSpan trimStartTime;
                TimeSpan trimStopTime;

                if (TrimRange != null)
                {
                    trimStartTime = TimeSpan.FromMilliseconds(TrimRange.Minimum * TrimRange.OriginalDuration.TotalMilliseconds);
                    trimStopTime  = TimeSpan.FromMilliseconds(TrimRange.Maximum * TrimRange.OriginalDuration.TotalMilliseconds);
                }

                _media.EditState = new BitmapEditState
                {
                    //Rectangle = new Rect(rect.X * w, rect.Y * h, rect.Width * w, rect.Height * h),
                    Rectangle     = rect,
                    Proportions   = Cropper.Proportions,
                    Strokes       = Canvas.Strokes,
                    Flip          = _flip,
                    Rotation      = _rotation,
                    TrimStartTime = trimStartTime,
                    TrimStopTime  = trimStopTime,
                };

                Hide(ContentDialogResult.Primary);
            }
            else
            {
                Canvas.SaveState();

                Cropper.IsCropEnabled = true;
                Canvas.IsEnabled      = false;

                BasicToolbar.Visibility = Visibility.Visible;
                DrawToolbar.Visibility  = Visibility.Collapsed;
                DrawSlider.Visibility   = Visibility.Collapsed;

                SettingsService.Current.Pencil = DrawSlider.GetDefault();
            }
        }
        private void Cancel_Click(object sender, RoutedEventArgs e)
        {
            if (Cropper.IsCropEnabled)
            {
                Hide(ContentDialogResult.Secondary);
            }
            else
            {
                Canvas.RestoreState();

                Cropper.IsCropEnabled = true;
                Canvas.IsEnabled      = false;

                BasicToolbar.Visibility = Visibility.Visible;
                DrawToolbar.Visibility  = Visibility.Collapsed;
                DrawSlider.Visibility   = Visibility.Collapsed;

                SettingsService.Current.Pencil = DrawSlider.GetDefault();
            }
        }