Как сделать фон прозрачным в форме? Возможно ли это в С#?
Заранее спасибо!
Как сделать фон прозрачным в форме? Возможно ли это в С#?
Заранее спасибо!
Вы можете установить BackColor
вашей формы на необычный цвет (скажем, Color.Magenta
), а затем установить свойство TransparencyKey
формы на тот же цвет. Затем установите FormBorderStyle
на None
.
Конечно, это просто быстрое и простое решение. Края элементов управления уродливы, вам приходится постоянно менять цвет фона новых элементов управления, которые вы добавляете (если они являются кнопками или чем-то в этом роде), и целый ряд других проблем.
Это действительно зависит от того, чего вы хотите достичь. Что это такое? Если вы хотите сделать что-то вроде виджета, есть гораздо лучшие способы. Если вам нужны закругленные углы или собственный фон, есть гораздо лучшие способы. Пожалуйста, предоставьте дополнительную информацию, если TransparencyKey
не совсем то, что вы имели в виду.
Поместите в конструктор формы следующее:
public Form1()
{
this.TransparencyKey = Color.Turquoise;
this.BackColor = Color.Turquoise;
}
Примечание. Этот метод не позволяет вам щелкать по форме.
Обновление:
Как сделать свой элемент управления прозрачным фоном
Устарело: Как: Создайте прозрачные формы Windows:
Примечание. Поскольку прозрачные формы поддерживаются только в Windows 2000 или более поздних версиях, Windows Forms будут полностью непрозрачными при работе в более старых операционных системах, таких как Windows 98, независимо от значения, установленного для свойства Непрозрачность.
Простое решение для получения прозрачного фона в winform — перезаписать метод OnPaintBackground следующим образом:
protected override void OnPaintBackground(PaintEventArgs e)
{
//empty implementation
}
(Обратите внимание, что base.OnpaintBackground(e) удален из функции)