Exemple #1
0
        public void RedrawGrid()
        {
            DrawingArea.Refresh();
            DrawingOffsetHorizontal = (DrawingArea.Width / 2) - ((int)(ScaleNumber.Value * LoadedScreen.Width) / 2);
            DrawingOffsetVertical   = (DrawingArea.Height / 2) - ((int)(ScaleNumber.Value * LoadedScreen.Height) / 2);

            Graphics   g = DrawingArea.CreateGraphics();
            SolidBrush n = new SolidBrush(Color.Black);
            SolidBrush w = new SolidBrush(Color.White);

            g.FillRectangle(w, DrawingOffsetHorizontal, DrawingOffsetVertical, ((float)(LoadedScreen.Width * ScaleNumber.Value)), ((float)(LoadedScreen.Height * ScaleNumber.Value)));
            for (ushort i = 0; i < LoadedScreen.Width; i++)
            {
                for (ushort x = 0; x < LoadedScreen.Height; x++)
                {
                    if (LoadedScreen[i, x])
                    {
                        g.FillRectangle(n, ((float)(i * ScaleNumber.Value)) + DrawingOffsetHorizontal, ((float)(x * ScaleNumber.Value)) + DrawingOffsetVertical, ((float)(ScaleNumber.Value)), ((float)(ScaleNumber.Value)));
                    }
                }
            }
            for (int i = ((int)ScaleNumber.Value) + DrawingOffsetHorizontal; i <= (Math.Min(DrawingArea.Width, (LoadedScreen.Width * ScaleNumber.Value))) + DrawingOffsetHorizontal && ScaleNumber.Value >= 16; i += (int)ScaleNumber.Value)
            {
                Pen   p          = new Pen(Color.Blue);
                Int32 LowerLimit = Math.Min((int)ScaleNumber.Value * LoadedScreen.Height, DrawingArea.Height);
                g.DrawLine(p, new Point(i, DrawingOffsetVertical), new Point(i, LowerLimit + DrawingOffsetVertical));
            }
            for (int i = ((int)ScaleNumber.Value) + DrawingOffsetVertical; i <= (Math.Min(DrawingArea.Height, (LoadedScreen.Height * ScaleNumber.Value))) + DrawingOffsetVertical && ScaleNumber.Value >= 16; i += (int)ScaleNumber.Value)
            {
                Pen   p          = new Pen(Color.Blue);
                Int32 LowerLimit = Math.Min((int)ScaleNumber.Value * LoadedScreen.Width, DrawingArea.Width);
                g.DrawLine(p, new Point(DrawingOffsetHorizontal, i), new Point(LowerLimit + DrawingOffsetHorizontal, i));
            }
        }
Exemple #2
0
        private void FillOne(Point e)
        {
            if (!IsPointInArea(e))
            {
                return;
            }
            //SolidBrush - сплошная закраска цветом кисти;
            //TextureBrush - наложение картинки (image) на область закраски;
            //HatchBrush - закраска области предопределенным узором;
            //LinearGradientBrush - сплошная закраска c переходом цвета кисти (градиентная закраска);
            //PathGradientBrush -сплошная закраска c переходом цвета кисти по специальному алгоритму.
            var x          = Convert.ToInt32(e.X); // координата по оси X
            var y          = Convert.ToInt32(e.Y); // координата по оси Y
            var pixelColor = PixelColor(x, y);
            var myBrush    = new SolidBrush(colorCurrentBox);


            x = x / CellWidth;
            y = y / CellHeight;

            using (Graphics g = Graphics.FromImage(DrawingArea.Image))
            {
                g.FillRectangle(myBrush, x * CellWidth, y * CellHeight, CellWidth, CellHeight);
            }
            DrawingArea.Refresh();
        }
Exemple #3
0
 private void CellCountY_ValueChanged(object sender, EventArgs e)
 {
     using (Graphics g = Graphics.FromImage(DrawingArea.Image))
     {
         g.Clear(DrawingArea.BackColor);
         DrawHorizontal(g);
         DrawVertical(g);
     }
     UpdateCellLabel();
     DrawingArea.Refresh();
 }