Как конструктор по умолчанию Системы. Рисование. Графика удалена?

Когда я пытаюсь создать объект Графики, почему следующее не работает?

System.Drawing.Graphics graphicsObj = new System.Drawing.Graphics();

(Я знаю, что мог создать a private System.Windows.Forms.Panel Obj; и затем сделайте CreateGraphics() если я хотел, чтобы это работало),

Я пытался найти пользовательского конструктора для Графики, но я не мог найти тот. Где Microsoft определяла его, или как это блокировало его?

7
задан g t 13 July 2012 в 07:36
поделиться

3 ответа

Конструкторы по умолчанию создаются компилятором C # только в том случае, если нет других объявленных конструкторов. В этом случае похоже, что все конструкторы внутренние или частные. По сути, вы не создаете его сами - вы просите один из изображения, элемента управления или чего-то еще, или получаете один для событий рисования и т. Д.

11
ответ дан 6 December 2019 в 15:19
поделиться

Интуитивно очевидно, что Graphics не может иметь конструктора по умолчанию. Вы всегда хотите, чтобы то, что вы рисуете, было где-то видно. Конструктор по умолчанию не может выбрать место назначения чертежа.

Способы получения объекта Graphics:

  • Graphics.FromImage () . Вы будете рисовать в растровом изображении. Часто используется при изменении размера изображений или для создания «холста».
  • Control.CreateGraphics () . Давайте рисовать прямо на экране. Всегда неверно, вместо этого используйте:
  • Paint event. Аргумент e.Graphics позволяет рисовать на экране.
  • Событие PrintPage. Для класса PrintDocument e.Graphics оказывается на листе бумаги.
  • Graphics.FromHdc () . Используется в низкоуровневом коде P / Invoke, обращается к контексту устройства Windows.
  • Graphics.FromHwnd () . Как и выше, рисует прямо в собственное окно.

Вкратце:

  • Рисование на экране с событием Paint
  • Рисование на принтере с событием PrintPage
  • Рисование к растровому изображению с помощью FromImage ()
3
ответ дан 6 December 2019 в 15:19
поделиться

Корпорация Майкрософт не предоставила конструкторы объектов Graphics. Единственный способ создать экземпляр - использовать статические методы, такие как CreateGraphics () или FromImage (). Вот почему ваш код не работает. Кроме того, как примечание, объект Graphics не может быть унаследован от.

0
ответ дан 6 December 2019 в 15:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: