Загрузка данных
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
namespace GraphicsTask
{
public partial class Form1 : Form
{
// Переменные для хранения выбранной фигуры и цветов
private string currentShape = "";
private Color triangleColor = Color.Green;
private Color squareColor = Color.Orange;
private Color circleColor = Color.Purple;
public Form1()
{
InitializeComponent();
}
// Рисование в PictureBox
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
// ---------- ОСНОВНАЯ КОМПОЗИЦИЯ ----------
// Контурный прямоугольник
Pen bluePen = new Pen(Color.Blue, 3);
g.DrawRectangle(bluePen, 20, 20, 120, 80);
// Закрашенный прямоугольник
SolidBrush yellowBrush = new SolidBrush(Color.Yellow);
g.FillRectangle(yellowBrush, 180, 20, 120, 80);
// Линия
Pen redPen = new Pen(Color.Red, 2);
g.DrawLine(redPen, 50, 150, 300, 150);
// Эллипс со штриховкой
HatchBrush hatchBrush = new HatchBrush(
HatchStyle.Cross,
Color.Green,
Color.White);
g.FillEllipse(hatchBrush, 350, 20, 150, 100);
// Текст
Font myFont = new Font("Arial", 16, FontStyle.Bold);
SolidBrush textBrush = new SolidBrush(Color.Black);
g.DrawString("Windows Forms Graphics",
myFont,
textBrush,
new Point(120, 220));
// ---------- ДОПОЛНИТЕЛЬНЫЕ ФИГУРЫ ----------
if (currentShape == "triangle")
{
Point[] points =
{
new Point(100, 300),
new Point(50, 370),
new Point(150, 370)
};
SolidBrush brush = new SolidBrush(triangleColor);
g.FillPolygon(brush, points);
}
else if (currentShape == "square")
{
SolidBrush brush = new SolidBrush(squareColor);
g.FillRectangle(brush, 250, 300, 100, 100);
}
else if (currentShape == "circle")
{
SolidBrush brush = new SolidBrush(circleColor);
g.FillEllipse(brush, 420, 300, 100, 100);
}
}
// Кнопка "Треугольник"
private void btnTriangle_Click(object sender, EventArgs e)
{
currentShape = "triangle";
pictureBox1.Invalidate();
}
// Кнопка "Квадрат"
private void btnSquare_Click(object sender, EventArgs e)
{
currentShape = "square";
pictureBox1.Invalidate();
}
// Кнопка "Круг"
private void btnCircle_Click(object sender, EventArgs e)
{
currentShape = "circle";
pictureBox1.Invalidate();
}
// Кнопка "Очистить"
private void btnClear_Click(object sender, EventArgs e)
{
currentShape = "";
pictureBox1.Invalidate();
}
// Цвет треугольника
private void btnTriangleColor_Click(object sender, EventArgs e)
{
ColorDialog cd = new ColorDialog();
if (cd.ShowDialog() == DialogResult.OK)
{
triangleColor = cd.Color;
pictureBox1.Invalidate();
}
}
// Цвет квадрата
private void btnSquareColor_Click(object sender, EventArgs e)
{
ColorDialog cd = new ColorDialog();
if (cd.ShowDialog() == DialogResult.OK)
{
squareColor = cd.Color;
pictureBox1.Invalidate();
}
}
// Цвет круга
private void btnCircleColor_Click(object sender, EventArgs e)
{
ColorDialog cd = new ColorDialog();
if (cd.ShowDialog() == DialogResult.OK)
{
circleColor = cd.Color;
pictureBox1.Invalidate();
}
}
}
}