Сделать контроль быть на вершине
У меня есть это изображение, и я хочу, чтобы оно было поверх другого изображения.
(окно формы приложения, C#)
2 ответа
Если это один элемент управления, частично перекрывающий другой, и вы хотите, чтобы один или другой элемент находились сверху, щелкните правой кнопкой мыши изображение, которое нужно вверху, в конструкторе и выберите "Переместить на передний план". Существует "Отправить назад", которое вы можете использовать на изображении, которое вы хотите, за другим.
Если вам нужна частичная прозрачность, например, альфа-маска на верхнем изображении или градиентное смешение между двумя изображениями прямо поверх другого, вам, вероятно, понадобятся более продвинутые возможности графики WPF. Вы МОЖЕТЕ делать попиксельные эффекты в WinForms, но в Winforms нет ничего встроенного для обеспечения прозрачности изображения, а манипулирование изображением в Winforms для каждого пикселя не использует преимущества графического ускорения (100% ЦП)., с затратами времени выполнения замедляет вас дальше).
В коде у вас есть несколько звонков, которые вы можете сделать. BringToFront и SendToBack, вероятно, самые простые:
yourControl.BringToFront();
yourControl.SendToBack();
Также вы можете контролировать это из родительского контейнера элемента управления, используя Control.ControlCollection.SetChildIndex. Например:
// Bring control to front
MyForm.Controls.SetChildIndex(SomeControl, 0);
В противном случае просто нажмите "Bring to Front" или "Send to back" в конструкторе, поскольку @KeithS уже ответил.