コード例 #1
0
ファイル: MainWindow.xaml.cs プロジェクト: YingDu/Drawing
        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();
                }
            }
        }