C # - прозрачная форма - PullRequest
       8

C # - прозрачная форма

13 голосов
/ 30 ноября 2010

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

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

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

Ответы [ 2 ]

29 голосов
/ 30 ноября 2010

В предположении WinForms.

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

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

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

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

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

BackgroundImage = myImage:

Части фонового изображения, которые также Color.Lime, также станут прозрачными.

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

FormBorderStyle = FormBorderStyle.None;
3 голосов
/ 14 июля 2012

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

this.BackColor = Color.Fuchsia;

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

TransparencyKey = Color.Fuchsia;
...