Пример #1
0
 private void CreateSquaresOfType(int rows, int cols, Grid grid, double width, double margin, string name)
 {
     for (int row = 0; row < rows; row++)
     {
         grid.RowDefinitions.Add(new RowDefinition());
         for (int col = 0; col < cols; col++)
         {
             grid.ColumnDefinitions.Add(new ColumnDefinition());
             var rect = new Rectangle() { Width = width, Height = width, Margin = new Thickness(0, 0, margin, margin), Fill = new SolidColorBrush(Colors.White)/*, Opacity = 0.2*/ };
             grid.Children.Add(rect);
             rect.SetValue(Grid.RowProperty, row);
             rect.SetValue(Grid.ColumnProperty, col);
             var binding = new Binding();
             binding.Path = new PropertyPath(string.Format("Squares{1}[{0}]", row * cols + col, name));
             rect.SetBinding(OpacityProperty, binding);
         }
     }
 }
Пример #2
0
        private void SetShapeType(ShapeType shapeType)
        {
            if (_container != null)
            {
                if (shapeType == ShapeType.Border)
                {
                    var border = new Border();

                    border.SetBinding(Border.BackgroundProperty, new Binding { Source = this, Path = new PropertyPath("Fill") });
                    border.SetBinding(Border.BorderBrushProperty, new Binding { Source = this, Path = new PropertyPath("BorderBrush") });
                    border.SetBinding(Border.BorderThicknessProperty, new Binding { Source = this, Path = new PropertyPath("BorderThickness") });
                    border.SetBinding(Border.CornerRadiusProperty, new Binding { Source = this, Path = new PropertyPath("CornerRadius") });

                    _container.Child = border;
                }
                else
                {
                    Shape shape;
                    switch (shapeType)
                    {
                        case ShapeType.Ellipse:
                            shape = new Ellipse();
                            break;
                        case ShapeType.Rectangle:
                        default:
                            shape = new Rectangle();
                            shape.SetBinding(Rectangle.RadiusXProperty, new Binding { Source = this, Path = new PropertyPath("RadiusX") });
                            shape.SetBinding(Rectangle.RadiusYProperty, new Binding { Source = this, Path = new PropertyPath("RadiusY") });
                            break;
                    }

                    shape.SetBinding(Shape.FillProperty, new Binding { Source = this, Path = new PropertyPath("Fill") });
                    shape.SetBinding(Shape.StrokeProperty, new Binding { Source = this, Path = new PropertyPath("Stroke") });
                    shape.SetBinding(Shape.StrokeThicknessProperty, new Binding { Source = this, Path = new PropertyPath("StrokeThickness") });

                    _container.Child = shape;
                }
            }
        }