Как рисовать простую графику в С#?
Я просто хочу нарисовать простые 2D-объекты, такие как круг, строка, квадрат и т.д. в С#. Как мне это сделать? Вернувшись в дни Turbo С++, я помню, как инициализировал некоторую графическую библиотеку для этого. Нужно ли мне что-то делать в .NET? Разве это не так для 3D-объектов? Будут ли такие вещи, как DirectX, сделать это проще? Любые ссылки на учебные пособия или образцы были оценены.
Ответы
Ответ 1
Как говорили другие, посмотрите System.Drawing. (Я только повторяю это для полноты.) System.Drawing предоставляет GDI + библиотеку рисования Windows для вашего приложения.
Хороший учебник, позволяющий вам начать работу с System.Drawing и GDI +, можно найти в С# Corner.
Некоторые важные примечания:
- Многие объекты GDI + реализуют интерфейс IDisposable и поэтому должны быть обернуты в блоки
using
. Обязательно соблюдайте соответствующие соглашения об утилизации; неспособность уничтожить объекты GDI + может привести к действительно неприятным побочным эффектам для вашего приложения. (Объекты GDI + в .NET соответствуют их эквивалентам Windows API).
- API, такие как DirectX, чрезвычайно сложны и не без оснований. Они разработаны не для простых форм, а для сложных, высокопроизводительных и интерактивных мультимедийных приложений. (Другими словами, игры, как правило.) Вы можете получить доступ к DirectX через управляемые интерфейсы DirectX, но опять же, это, вероятно, будет излишним для ваших прямых целей.
- Если вам интересен более простой способ работы с DirectX, XNA - это путь. Тем не менее, это очень специфическая для игр библиотека, и снова, вероятно, будет излишней. Я немного опаздываю на вечеринку, но, согласно приведенным ниже комментариям, это больше не поддерживается. (Это имеет смысл, я ничего не слышал об этом годами.)
Ответ 2
Вот простой пример кода, который поможет вам начать работу (предполагается, что у вас есть PictureBox с именем pictureBox1):
Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
using (Graphics g = Graphics.FromImage(bmp))
{
g.DrawLine(new Pen(Color.Red), 0, 0, 10, 10);
}
pictureBox1.Image = bmp;
Графический объект имеет множество других методов рисования, а Intellisense покажет вам, как их называть.
Ответ 3
Прочитайте о пространстве имен GDI, GDI +, System.Drawing, например здесь.
DirectX - это не то, что вы использовали бы для рисования простых фигур, а скорее для создания сложных 3D-материалов, а также использование DX Api под С# немного сложнее (хотя и не так сложно).
Ответ 4
Проверьте пространство имен System.Drawing: http://msdn.microsoft.com/en-us/library/system.drawing.aspx
Ответ 5
Посмотрите на пространство имен System.Drawing
Ответ 6
Вам нужно использовать GDI +.
Как вы это делаете, это немного зависит от того, на что вы хотите нарисовать. Вы можете нарисовать элемент управления или форму, или вы можете нарисовать объект изображения. В любом случае вам нужен объект System.Drawing.Graphics, который, я считаю, находится в System.Drawing.dll.
Вы можете создать новый класс Bitmap и вызвать Graphics.FromImage(myImage), а затем рисовать с помощью методов только что созданного объекта Graphics. Если вы хотите использовать форму или элемент управления, просто переопределите метод OnPaint и найдите свойство Graphics в классе EventArgs.
Подробнее о пространстве имен System.Drawing: http://msdn.microsoft.com/en-us/library/system.drawing.aspx
Ответ 7
Ищите управляемый графический интерфейс Direct3D в .NET.
Источник
Ответ 8
GDI +
используя System.Drawing