2010-11-30 3 views
13

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

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

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

ответ

25

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

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

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

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

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

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

BackgroundImage = myImage: 

Часть BackgroundImage, что также Color.Lime будет также получить прозрачную.

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

FormBorderStyle = FormBorderStyle.None; 
+0

Это сделал трюк! Спасибо за быстрый ответ и подробное объяснение. Я не могу поверить, что все просто! Еще раз спасибо. – Citroenfris 2010-11-30 13:34:31

+0

Рад, что я могу помочь. Однажды я сделал то же самое, когда создал заставку для приложения. – 2010-11-30 13:41:02

3

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

this.BackColor = Color.Fuchsia; 

, а затем сделать этот цвет к прозрачному с помощью кодов, что:

TransparencyKey = Color.Fuchsia; 
Смежные вопросы