У меня есть элемент управления, который может перекрывать несколько пользовательских элементов управления C # в моем графическом интерфейсе. Этот элемент управления имеет полупрозрачный фон для «серого» выделения частей графического интерфейса, и класс выглядит примерно так:
public greyOutControl: UserControl
{
// Usual stuff here
protected overide OnPaint()
{
paintBackround();
base.OnPaint();
}
}
В настоящее время элемент управления иногда зацикливается и постоянно перерисовывает фон, в результате чего полупрозрачный цвет выглядит все менее и менее прозрачным.
Моя идея борьбы с этим заключается в следующем (в общих чертах):
1) Определите, что контролирует greyOutControl поверх
2) вызовите Refresh () для этих элементов управления, чтобы обновить отображение
3) продолжить рисование greyOutControl.
У меня вопрос: как определить, какие элементы управления перекрывают greyOutControl? Или можно обновить только ту часть графического интерфейса, которая покрывает greyOutControl?