private void ImportTextBlocks()
        {
            if (SelectedPageViewModel == null)
            {
                return;
            }

            var openFileDialog = new OpenFileDialog()
            {
                Filter = "JSON файлы (*.json) | *.json"
            };
            var res = openFileDialog.ShowDialog();

            if (res != true)
            {
                return;
            }

            List <TextBlock> textBlocks;

            try
            {
                var fileContent = File.ReadAllText(openFileDialog.FileName);
                textBlocks = JsonConvert.DeserializeObject <List <TextBlock> >(fileContent);
            }
            catch
            {
                MessageBox.Show("Ошибка чтения файла");
                return;
            }

            UndoRedoStack.ExecuteNewCommand(new ChangeTextBlockListCommand(SelectedPageViewModel, textBlocks));
        }
        private void EditTextBlockAtBlank()
        {
            if (SelectedPageViewModel == null)
            {
                return;
            }
            if (SelectedTextBlock == null)
            {
                return;
            }

            var viewModel = new CreateEditNameForTextBlockDialogViewModel("Редактирование текста", SelectedTextBlock.Text);
            var newName   = viewModel.Show();

            if (string.IsNullOrEmpty(newName))
            {
                return;
            }

            var textBlocks = new List <TextBlock>();

            foreach (var textBlock in SelectedPageViewModel.TextBlocks)
            {
                var text = textBlock == SelectedTextBlock ? newName : textBlock.Text;
                textBlocks.Add(new TextBlock(text, textBlock.X, textBlock.Y));
            }
            UndoRedoStack.ExecuteNewCommand(new ChangeTextBlockListCommand(SelectedPageViewModel, textBlocks));
        }
        private void DeleteTextBlockFromBlank()
        {
            if (SelectedPageViewModel == null)
            {
                return;
            }
            if (SelectedTextBlock == null)
            {
                return;
            }

            var textBlocks = SelectedPageViewModel.TextBlocks.ToList();

            textBlocks.Remove(SelectedTextBlock);
            UndoRedoStack.ExecuteNewCommand(new ChangeTextBlockListCommand(SelectedPageViewModel, textBlocks));
        }
        public void PointSelected(double x, double y)
        {
            SelectPointMode = false;
            if (SelectedPageViewModel == null)
            {
                return;
            }

            var viewModel = new CreateEditNameForTextBlockDialogViewModel("Добавление текста", "");
            var name      = viewModel.Show();

            if (string.IsNullOrEmpty(name))
            {
                return;
            }

            x -= 2;
            y -= 5;

            var textBlocks = SelectedPageViewModel.TextBlocks.Select(i => (TextBlock)i.Clone()).ToList();

            textBlocks.Add(new TextBlock(name, (int)x, (int)y));
            UndoRedoStack.ExecuteNewCommand(new ChangeTextBlockListCommand(SelectedPageViewModel, textBlocks));
        }