Esempio n. 1
0
        public void Print(int[,] arrayFelder)
        {
            //останавливаем генерцию новых поколений
            Timer.Stop();
            StartStopTite = "Старт";

            CanvasPanel.Background          = Brushes.LightGray;
            CanvasPanel.Height              = height * 17 - 2; // размеры пдоложки клеток. 17 - размер клетки с учетом границб "-2" - убирает полоску пдоложки внизу и справа
            CanvasPanel.Width               = width * 17 - 2;
            CanvasPanel.HorizontalAlignment = HorizontalAlignment.Center;
            CanvasPanel.VerticalAlignment   = VerticalAlignment.Center;
            CanvasPanel.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
            CanvasPanel.Arrange(new Rect(0.0, 0.0, CanvasPanel.Width, CanvasPanel.DesiredSize.Height));

            for (int i = 0; i < height; i++)
            {
                for (int j = 0; j < width; j++)
                {
                    Rectangle rectangle = new Rectangle();
                    rectangle.Width  = 15; //размеры клетки
                    rectangle.Height = 15;

                    if (arrayFelder[i, j] == 1)
                    {
                        rectangle.Fill = Brushes.DarkSlateGray; //живаая клетка
                    }
                    else
                    {
                        rectangle.Fill = Brushes.DarkGray; //мертвая клетка
                    }
                    CanvasPanel.Children.Add(rectangle);
                    Canvas.SetLeft(rectangle, j * 17);
                    Canvas.SetTop(rectangle, i * 17);
                    rectangle.MouseDown += R_MouseDown;
                    felder[i, j]         = rectangle;
                }
            }
        }