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); } } }
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; } } }