Сделать контроль быть на вершине - PullRequest
3 голосов
/ 13 января 2011

У меня есть это изображение, и я хочу, чтобы оно было поверх другого изображения.

(окно приложения, c #)

Ответы [ 2 ]

7 голосов
/ 27 июня 2013

В коде у вас есть несколько звонков, которые вы можете сделать. BringToFront и SendToBack , вероятно, самые простые:

yourControl.BringToFront();
yourControl.SendToBack();

Также вы можете контролировать это из родительского контейнера элемента управления, используя Control.ControlCollection.SetChildIndex . Например:

// Bring control to front    
MyForm.Controls.SetChildIndex(SomeControl, 0); 

В противном случае просто нажмите «Привести на передний план» или «Отправить на задний план» в конструкторе, поскольку @KeithS уже ответил.

7 голосов
/ 13 января 2011

Если это один элемент управления, частично перекрывающий другой, и вы хотите, чтобы один или другой элемент сверху, щелкните правой кнопкой мыши нужное изображение сверху в конструкторе и выберите «Переместить на передний план».Есть «Отправить назад», которое вы можете использовать на изображении, которое вы хотите, за другим.

Если вы хотите частичную прозрачность, например, альфа-маску на верхнем изображении или градиентную смесь между двумя изображениями прямоВдобавок ко всему, вам, вероятно, понадобятся более продвинутые возможности графики WPF.Вы МОЖЕТЕ делать попиксельные эффекты в WinForms, но в Winforms нет ничего встроенного для обеспечения прозрачности изображения, а манипулирование изображением в Winforms для каждого пикселя не использует преимущества графического ускорения (100% ЦП)., с затратами времени выполнения замедляет вас дальше).

...