Прозрачная форма C # на панели
Вопрос
я пытаюсь создать полупрозрачную форму, которая отображается на панели.я могу отобразить форму на панели, но свойство непрозрачности не будет работать, и форма непрозрачна.
private void button1_Click(object sender, EventArgs e)
{
Form fr = new Form();
fr.FormBorderStyle = FormBorderStyle.None;
fr.BackColor = Color.Black;
fr.TopLevel = false;
fr.Opacity = 0.5;
this.panel1.Controls.Add(fr);
fr.Show();
}
есть какие-нибудь идеи, как я могу с этим справиться?Спасибо за ваши ответы!
Решение
Winforms поддерживает только частичную прозрачность для форм верхнего уровня. Если вы хотите создать приложение с частично прозрачными элементами пользовательского интерфейса, вам нужно либо использовать WPF, либо обрабатывать все чертежи самостоятельно. Извините, что я несу плохие новости.
Другие советы
Ваша форма добавлена как дочерний элемент управления panel1, который является дочерним по отношению к основной форме с непрозрачностью по умолчанию = 1.
Чтобы увидеть непрозрачность в действии, попробуйте следующее:
private void button1_Click(object sender, EventArgs e)
{
Form fr = new Form();
fr.FormBorderStyle = FormBorderStyle.None;
fr.BackColor = Color.Blue;
fr.TopLevel = false;
//fr.Opacity = 0.5;
this.Opacity = 0.5; // add this
this.panel1.Controls.Add(fr);
fr.Show();
}
Я предполагаю, что вы хотите, чтобы панель выглядела полупрозрачной, вам нужно использовать другой метод и работать с самой формой.