Best approach is to construct the image with overlays off-line in a Bitmap object, then assign that constructed image to the PictureBox for display.
For example like this:
int width = 100;
int height = 100;
Image image = new Bitmap(width, height);
using (var graphics = Graphics.FromImage(image))
{
graphics.DrawImage(MyApplication.Properties.Resources.ImageItemX, new Rectangle(0, 0, width, height));
graphics.DrawImage(MyApplication.Properties.Resources.ImageGradeZ, new Rectangle(0, 0, width, height));
}
myPictureBox.SizeMode = PictureBoxSizeMode.Zoom;
myPictureBox.Image = image;
This assumes that ImageItemX
and ImageGradeZ
are images with a transparent background (for example pngs) imported as project resources under these names.
For example given these resources

the code will produce this:
