none
Не рисуется линия прямоугольника в стиле DashStyle.Dot

    Вопрос

  • private void button1_Click(object sender, EventArgs e)
            
            {
                Bitmap bmp = new Bitmap(pictureBox.Width, pictureBox.Height);
                Graphics graph = Graphics.FromImage(bmp);
                Pen Pen = new Pen(Color.DeepPink, 3);
                graph.DrawRectangle(Pen, 100, 100, 300, 200);
                Pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot;
                pictureBox.Image = bmp;

                Bitmap bmp2 = new Bitmap(pictureBox.Width, pictureBox.Height);
                Graphics graph2 = Graphics.FromImage(bmp);
                Pen Pen2 = new Pen(Color.DeepPink, 3);
                graph.DrawEllipse(Pen, 450, 100, 300, 200);
                Pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot;
                pictureBox.Image = bmp;

                HatchBrush hBrush = new HatchBrush(HatchStyle.DiagonalCross, Color.BlueViolet);
                graph.FillRectangle(hBrush, 100, 100, 300, 200);

                HatchBrush hBrush2 = new HatchBrush(HatchStyle.DiagonalCross, Color.BlueViolet);
                graph.FillEllipse(hBrush, 450, 100, 300, 200);

                
            }
    11 сентября 2017 г. 22:14

Все ответы

  • Добрый день.

    Рисование в Graphics растровое, а не векторное. Т.е. когда вы вызываете DrawRectangle у вас рисуется прямоугольник, а если вы после этого меняете свойство карандаша, то это уже ни на что не влияет. И, да, у вас во втором рисовании создается Pen2, а вы по прежнему используете Pen (который создавался для прямоугольника) именно поэтому элипс рисуется правильно.

    12 сентября 2017 г. 8:53
    Отвечающий