public void SetInkingMode(InkingModes newInkingMode) { if (newInkingMode == InkingModes.None) { throw new InvalidOperationException( "You can only set CurrentInkingMode to None by setting CurrentState to None or OnlyManipulating"); } if (State != States.DrawingAndManipulating && State != States.OnlyDrawing) { throw new InvalidOperationException( "You cannot change the CanvasMode in a non-drawing state (CurrentState : " + StateAsString + ") !"); } switch (newInkingMode) { case InkingModes.Highlighter: EditingMode = InkCanvasEditingMode.InkAndGesture; break; case InkingModes.Pencil: EditingMode = InkCanvasEditingMode.InkAndGesture; break; case InkingModes.Pointer: EditingMode = InkCanvasEditingMode.InkAndGesture; break; case InkingModes.PointEraser: EditingMode = InkCanvasEditingMode.EraseByPoint; break; case InkingModes.StrokeEraser: EditingMode = InkCanvasEditingMode.EraseByStroke; break; case InkingModes.Selection: EditingMode = InkCanvasEditingMode.Select; break; } InkingMode = newInkingMode; }
public LayerStackState(States state, InkingModes mode) { SetState(state); SetInkingMode(mode); }