none
this.BackgroundImage не рисуется на bitmap1. RRS feed

  • Вопрос

  • Проблемный код:

            Bitmap bitmap1 = new Bitmap(1000, 1000); //тут нет this, что использовать вместо него?
    
            public Form1()
            {
                InitializeComponent();
    
                this.BackgroundImage = new Bitmap(this.Width, this.Height);
            }
    
            private void Form1_Shown(object sender, EventArgs e)
            {
                Pen P = new Pen(Color.Black);
    
                Graphics GT = this.CreateGraphics();
                GT.DrawLine(P, 10, 10, 100, 10); //рисуем линию на this
    
                Graphics G = Graphics.FromImage(bitmap1);
                G.DrawRectangle(P, 10, 10, 100, 100); //рисуем квадрат на bitmap1
                G.DrawImage(this.BackgroundImage, 0, 0);//рисуем фоновое изображение (линию) на bitmap1
    
                GT.DrawImage(bitmap1, 0, 0);//рисуем bitmap1 (линию) на this
            }

    Мне нужно чтобы в конце на this рисовалась линия.

    15 сентября 2012 г. 15:24

Ответы

  • Привет еще раз.

    Линия у вас рисуется правильно, она просто совпадает с одной из сторон прямоугольника, именно поэтому вы ее не видите.

    Измените координаты рисования линии и вы увидите ее:

    GT.DrawLine(P, 10, 10, 110, 110); //рисуем линию на this


    Для связи [mail]

    • Помечено в качестве ответа Ziya Ceferov 28 сентября 2012 г. 10:00
    • Снята пометка об ответе Ziya Ceferov 28 сентября 2012 г. 10:00
    • Помечено в качестве ответа Ziya Ceferov 28 сентября 2012 г. 10:00
    • Снята пометка об ответе Ziya Ceferov 28 сентября 2012 г. 10:00
    • Помечено в качестве ответа Abolmasov Dmitry 4 октября 2012 г. 7:11
    28 сентября 2012 г. 0:47

Все ответы

  • Привет.

    Ничего не понятно из того что вы написали. Можете по шагам рассказать что нужно сделать?

    В контсрукторе формы у вас создается новый Bitmap, после вы рисуете на форме что-то. Что вы хотите сделать вне метода рисования? То место, где вы хотите использовать this - что вы там сделать хотите? Там нельзя писать логику работы, там объявляются переменные.


    Для связи [mail]

    17 сентября 2012 г. 14:36
  • Ничего не понятно из того что вы написали. Можете по шагам рассказать что нужно сделать?

    В конце линия на this не появляется, и мне нужно знать в какой строке и почему происходить ошибка.
    17 сентября 2012 г. 15:03
  • bitmap1 у вас просто объявлен, он пустой, на нем ничего нет. Почему вы решили что там должна быть линия?


    Для связи [mail]

    • Помечено в качестве ответа Ziya Ceferov 22 сентября 2012 г. 10:59
    • Снята пометка об ответе Ziya Ceferov 22 сентября 2012 г. 10:59
    20 сентября 2012 г. 13:53
  • Почему вы решили что там должна быть линия?

     G.DrawImage(this.BackgroundImage, 0, 0);//рисуем фоновое изображение (линию) на bitmap1

    При этом мы переносим все фоновые пикселы this на bitmap1.

    Если проблема в этом коде, то как сделать это?

    22 сентября 2012 г. 11:01
  • Привет еще раз.

    Линия у вас рисуется правильно, она просто совпадает с одной из сторон прямоугольника, именно поэтому вы ее не видите.

    Измените координаты рисования линии и вы увидите ее:

    GT.DrawLine(P, 10, 10, 110, 110); //рисуем линию на this


    Для связи [mail]

    • Помечено в качестве ответа Ziya Ceferov 28 сентября 2012 г. 10:00
    • Снята пометка об ответе Ziya Ceferov 28 сентября 2012 г. 10:00
    • Помечено в качестве ответа Ziya Ceferov 28 сентября 2012 г. 10:00
    • Снята пометка об ответе Ziya Ceferov 28 сентября 2012 г. 10:00
    • Помечено в качестве ответа Abolmasov Dmitry 4 октября 2012 г. 7:11
    28 сентября 2012 г. 0:47