Литература Windows Forms довольно ужасна для таких вещей. Поскольку ни один из данных дисплея не буферизирован, каждая перерисовка (если она достаточно медленная) является видимой и кричащей. Прозрачные изображения вообще не работают так, как вы хотите, чтобы они делали. Я точно не знаю, чего вы пытаетесь достичь в конце концов, но если вы просто играете с графикой, я бы предложил вам использовать что-то вроде Win2D API. API Win2D очень похож на событие onPaint с точки зрения использования.
Я имею в виду, что в теории вы можете использовать регионы, чтобы сделать вещи прозрачными, но они не могут сделать такие вещи, как 50% прозрачные, но только полностью. Несколько лет назад я пробовал рисовать графику с помощью Windows Forms, и я действительно не могу это сделать.
Вы не ввели код? – Cjen1
Почему вы хотите, чтобы фон не был нарисован? Он будет уничтожен, когда система нуждается в перекраске! - Вы можете установить BackgroundImage для неизменных фонов, но .. - Также: совершенно неясно, на что вы нацеливаетесь, когда говорите о прозрачности. Пожалуйста, объясните себе намного яснее, иначе мы не сможем помочь или посоветовать ..! – TaW
Поскольку onPaint обновляется каждые 10 мс, я надеялся, что есть способ нарисовать определенные вещи (например, фон) только один раз, чтобы уменьшить нагрузку. – SJ19