Вы можете сделать это, создав полностью прозрачное окно в своей форме, а затем поместив полупрозрачную форму поверх полностью прозрачного окна.
Сначала установите для TransparencyKey вашей основной формы значение Color.Red, затем поместите панель с именем panel1
в форму и установите для ее BackColor значение Red. Это создаст полностью прозрачное «окно». Создайте ссылку на форму на уровне формы следующим образом:
private Form _floater;
Затем поместите этот код в событие загрузки вашей основной формы:
_floater = new Form();
_floater.ShowInTaskbar = false;
_floater.FormBorderStyle = FormBorderStyle.None;
_floater.Opacity = .5;
_floater.Size = panel1.Size;
_floater.StartPosition = FormStartPosition.Manual;
_floater.Location = panel1.PointToScreen(new Point(0, 0));
_floater.Show(this);
Наконец, поместите этот код в событие Move вашей основной формы:
_floater.Location = panel1.PointToScreen(new Point(0, 0));
Единственная проблема здесь в том, что если пользователь щелкает в полупрозрачном «окне», вторая форма получает фокус, поэтому заголовок вашей основной формы отображается серым цветом.
Нажмите здесь , чтобы запустить образец приложения с этим полупрозрачным окном в форме.