Рисунок сверху изображения WFA

89
8

Я использую WFA и С#, и я пытаюсь извлечь эллипс поверх ящика с изображением. вот мой код, но в настоящее время его рисунок позади PB.

private void Form1_Paint(object sender, PaintEventArgs e)
{
PictureBox pb=new PictureBox();
pb.Location=new Point(10,25);
pb.BackgroundImage = Image.FromFile("fire2_clipped_rev_1.png");
pb.Size = Image.FromFile("fire2_clipped_rev_1.png").Size;
Truck.TruckF(pb.Location, pb.CreateGraphics());
pb.Invalidate();
Controls.Add(pb);
}

static Image truckf = Image.FromFile("fire2_clipped_rev_1.png");

public static void TruckF(Point location, Graphics e)
{
Wheels(truckf.Size,location,e);
}

private static void Wheels(Size simage,Point location,Graphics e)
{
e.FillEllipse(Brushes.Black, location.X / 6F, location.Y / 1.43F, 20, 20);
}

спросил(а) 2021-01-25T11:08:29+03:00 5 месяцев назад
1
Решение
77

Вам нужно изменить, чтобы обрабатывать событие Load в вашей форме. Также PictureBox - это элемент управления, и вам нужно нарисовать изображение и передать его в PictureBox, чтобы заставить его работать. Попробуй это:

    private PictureBox pb;

private void Truck_Load(object sender, EventArgs e)
{
pb = new PictureBox();
pb.Location = new Point(10, 25);
Image bg = Image.FromFile("fire2_clipped_rev_1.png");
pb.BackgroundImage = bg;
pb.Size = bg.Size;
Bitmap img = new Bitmap(pb.Size.Width, pb.Size.Height);
pb.Image = img;
using (var g = Graphics.FromImage(img))
{
Truck.TruckF(pb.Location, g);
}
Controls.Add(pb);
}

ответил(а) 2021-01-25T11:08:29+03:00 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема