質問
パネルに表示される半透明のフォームを作成しようとしています。パネルにフォームを表示できますが、不透明度プロパティは機能せず、フォームは透明ではありません。
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は、トップレベルのフォームに対して部分的な透明性のみをサポートしています。部分的に透明なUI要素を持つアプリケーションを作成する場合は、WPFを使用するか、すべての描画を自分で処理する必要があります。悪いニュースの担い手になってすみません。
他のヒント
フォームは、デフォルトの不透明度= 1であるメインフォームの子であるpanel1の子コントロールとして追加されます。
作業中の不透明度を確認するには、これを試してください:
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();
}
パネルを半透明に見せたいと思うので、別の方法を使用してフォーム自体を操作する必要があります。
所属していません StackOverflow