private void DrawGrid() { for (int x = 0; x < LifeGrid.Width; x++) { for (int y = 0; y < LifeGrid.Height; y++) { if (LifeGrid.Cells[x, y].IsAlive) { BitmapGraphics.FillRectangle(BrushCell, x * CellSize, y * CellSize, CellSize, CellSize); CellsCount++; } } } PanelGraphics.DrawImage(LifeBitmap, 0, 0); }
protected override void OnPaintBackground(PaintEventArgs e) { base.OnPaintBackground(e); int tmpShadowOffSet = Math.Min(Math.Min(_shadowOffSet, this.Width - 2), this.Height - 2); int tmpSoundCornerRadius = Math.Min(Math.Min(_roundCornerRadius, this.Width - 2), this.Height - 2); if (this.Width > 1 && this.Height > 1) { e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; Rectangle rect = new Rectangle(0, 0, this.Width - tmpShadowOffSet - 1, this.Height - tmpShadowOffSet - 1); Rectangle rectShadow = new Rectangle(tmpShadowOffSet, tmpShadowOffSet, this.Width - tmpShadowOffSet - 1, this.Height - tmpShadowOffSet - 1); GraphicsPath graphPathShadow = PanelGraphics.GetRoundPath(rectShadow, tmpSoundCornerRadius); GraphicsPath graphPath = PanelGraphics.GetRoundPath(rect, tmpSoundCornerRadius); if (tmpSoundCornerRadius > 0) { using (PathGradientBrush gBrush = new PathGradientBrush(graphPathShadow)) { gBrush.WrapMode = WrapMode.Clamp; ColorBlend colorBlend = new ColorBlend(3); colorBlend.Colors = new Color[] { Color.Transparent, Color.FromArgb(180, Color.DimGray), Color.FromArgb(180, Color.DimGray) }; colorBlend.Positions = new float[] { 0.0F, 0.1F, 1.0F }; gBrush.InterpolationColors = colorBlend; e.Graphics.FillPath(gBrush, graphPathShadow); } } // Draw backgroup LinearGradientBrush brush = new LinearGradientBrush(rect, this._gradientStartColor, this._gradientEndColor, LinearGradientMode.BackwardDiagonal); e.Graphics.FillPath(brush, graphPath); e.Graphics.DrawPath(new Pen(Color.FromArgb(180, this._borderColor), _borderWidth), graphPath); // Draw Image if (_image != null) { e.Graphics.DrawImageUnscaled(_image, _imageLocation); } } }
private void panel_Resize(object sender, EventArgs e) { PanelGraphics = panel.CreateGraphics(); PanelGraphics.SetOptions(); }