С# - Прозрачная форма

В настоящее время у меня есть Форма со всеми желаемыми эффектами, кроме одного. Текущая форма состоит из майнипа в верхней части с панелью под ней, которая содержит метки и графические ящики. Когда форма запускается, menustrip не отображается, он становится видимым только тогда, когда пользователь нажимает кнопку "Alt" и исчезает тем же способом.

На панели будет фоновое изображение с прозрачным фоном (.PNG). Это изображение станет основным макетом формы, так как я установил borderstyle равным ни одному. Теперь проблема в том, что форма по-прежнему имеет белый/сероватый фон под панелью.

Теперь мой вопрос заключается в том, как сделать форму прозрачной, поэтому изображение на панели становится основным макетом, а не просто изображением с образами к ним под ним. Я не хочу использовать свойство Opacity, поскольку я хочу, чтобы панель была видимой на 100%.

Ответы

Ответ 1

Предполагая WinForms.

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

Попробуйте это.

В форме задайте следующие свойства:

BackColor = Color.Lime;
TransparencyKey = Color.Lime;

Это сделает форму прозрачной. Затем установите backgroundimage:

BackgroundImage = myImage:

Также будут прозрачными части изображения, также Color.Lime.

Если вы также хотите избавиться от границ Forms, добавьте также эту строку:

FormBorderStyle = FormBorderStyle.None;

Ответ 2

Будьте осторожны, когда вы выберете backcolor. Выделите Backcolor, чтобы отличаться от вашего текста, изображений и любого цвета управления, что означает, выбрать цвет, который вы никогда не собираетесь использовать в своей форме, и я думаю, что Fuchsia/lime будет лучшим выбором. Для выбора кода заднего плана ниже:

this.BackColor = Color.Fuchsia;

а затем Сделайте этот цвет прозрачным с помощью этих кодов:

TransparencyKey = Color.Fuchsia;