Вы можете попробовать подойти к этому с помощью холста ( Панель ), который обрабатывает рисование изображения в качестве фона, а затем всех аннотаций / разметки.Это сделает передний план прозрачным.Я ожидаю, что вы захотите установить Control.DoubleBuffer для производительности.
Вы можете поэкспериментировать с настройкой стиля ControlStyles .AllPaintingInWmPaint.Кроме того, попробуйте переопределить Control.OnPaintBackground и ничего не делать, а также переопределить Control.OnPaint и выполнить всю свою живопись внутри.
Если производительность по-прежнему неприемлема, платите близкообратите внимание на свойство PaintEventArgs.ClipRect.Это единственная область, которую нужно покрасить.Хитрость заключается в том, чтобы выяснить, какие из ваших аннотаций / наложений пересекаются с этим прямоугольником, и раскрасить их в правильном порядке.
Либо этот холст, либо элемент управления более высокого уровня должен будет отслеживать движение мыши, чтобы вы знали, где нарисоватьлинии, вставка изображений и т. д.