0

パネルに表示される半透明のフォームを作成しようとしています。パネルにフォームを表示できますが、不透明度プロパティが機能せず、フォームが不透明です。

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

どのように私がそれを処理できるかについてのアイデアはありますか?あなたの答えをありがとう!

4

2 に答える 2

3

Winformsは、トップレベルフォームの部分的な透過性のみをサポートします。部分的に透過的なUI要素を使用してアプリケーションを作成する場合は、WPFを使用するか、すべての描画を自分で処理する必要があります。悪い知らせの担い手になってすみません。

于 2009-10-23T10:11:29.017 に答える
0

フォームは、デフォルトの不透明度=1のメインフォームの子であるpanel1の子コントロールとして追加されます。

Opacityが機能していることを確認するには、次のことを試してください。

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

パネルを半透明に見せたいと思います。別の方法を使用して、フォーム自体を操作する必要があります。

于 2009-10-23T10:06:16.133 に答える