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; }
private void UpdateHistory(string operation) { OperationHistory.Add(image); History.Add(operation); HistoryIndex = History.Count - 1; }