Пример #1
0
        public void ApplyOperation(OperationList operationEnum, dynamic[] args)
        {
            IsNotSaved = true;
            switch (operationEnum)
            {
            case OperationList.None:
                return;

            case OperationList.Resize:
                args = new dynamic[] { ResizeWidth, ResizeHeight };
                break;

            case OperationList.Scale:
                args = new dynamic[] { ResizeScale };
                break;

            case OperationList.Crop:
                if (selectionRect.Width > 0 && selectionRect.Height > 0)
                {
                    args = new dynamic[] { Canvas.GetLeft(selectionRect), Canvas.GetTop(selectionRect), selectionRect.Width, selectionRect.Height };
                    IsSelectToolEnabled = false;
                    break;
                }
                else
                {
                    return;
                }

            case OperationList.Undo:
                if (HistoryIndex > 0)
                {
                    HistoryIndex = HistoryIndex - 1;
                }
                return;

            case OperationList.Redo:
                if (HistoryIndex + 1 < OperationHistory.Count)
                {
                    HistoryIndex = HistoryIndex + 1;
                }
                return;

            case OperationList.Reset:
                HistoryIndex = 0;
                OperationHistory.Clear();
                History.Clear();
                operationEnum = OperationList.Original;
                break;
            }

            DisableAllTools();
            Dissolve();

            Operation operation = Operations.ImageOperations[operationEnum];

            DisplayImage(operation.Operate(image, args));

            OperationHistory.Add(image);
            History.Add(operation.OperationName);
            HistoryIndex = History.Count - 1;
        }
Пример #2
0
 private void UpdateHistory(string operation)
 {
     OperationHistory.Add(image);
     History.Add(operation);
     HistoryIndex = History.Count - 1;
 }