Вопрос

я пытаюсь создать полупрозрачную форму, которая отображается на панели.я могу отобразить форму на панели, но свойство непрозрачности не будет работать, и форма непрозрачна.

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();
}

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top