private void Opacity_Click(object sender, RoutedEventArgs e) { Models.Decorator shapeDecorator = null; if (_selectedShape != null) { if (_selectedShape.Parent is CompositeShape compositeShape) { IIterator <ShapeBase> iterator = compositeShape.GetIterator(); while (iterator.HasNext()) { var shape = iterator.GetCurrent(); shapeDecorator = new OpacityDecorator(shape); shapeDecorator.Draw(); iterator.MoveNext(); } return; } shapeDecorator = new OpacityDecorator(_selectedShape); shapeDecorator.Draw(); return; } if (_selectedShapes?.Count > 0) { foreach (var shape in _selectedShapes) { shapeDecorator = new OpacityDecorator(shape); shapeDecorator.Draw(); } } }