我有一个表格,我将它的不透明度设置为 50%,如下所示:
this.Opacity = 0.5D; <--this==Form
我的问题是表单上的所有内容都具有 50% 的不透明度
我在表单上有两个按钮,我希望它们没有不透明度。
我知道这this.Opacity
包括所有控件,出于某种原因,图形也包括在内
我的问题是,如何排除控件的不透明度?
示例图像:
谢谢!
由于Control
没有Opacity
属性,而且大多数控件不支持透明颜色,所以一个可行的解决方案可以是:
创建一个Form
调用MainForm
并放置您将被排除的所有控件。
1.1 将 ofBackColor
和的TransparencyKey
属性设置MainForm
为相同的颜色,例如Color.Red
创建另一个名为的窗体TransparentForm
并放置所有必须变为透明的控件。将ShowInTaskbar
属性设置为False
。
在MainForm
Load
事件中显示TransparentForm
并将其发送回。
private void MainForm_Load(object sender, EventArgs e)
{
TransparentForm form = new TransparentForm();
form.Opacity = 0.5D;
form.Show();
form.SendToBack();
}
两种形式的控件的位置必须是这样的,当组合时,它显示正确的用户界面。
创建一个 C# 项目并添加 3 个名为
并为“MAIN”表单加载事件添加以下代码;
private void MAIN_Load(object sender, EventArgs e)
{
Child frm1 = new Child();
BACKGOUND frm2 = new BACKGOUND();
frm2 .WindowState = System.Windows.Forms.FormWindowState.Maximized;
frm2.Opacity = 0.5;
frm2.Show();
frm1.ShowDialog();
frm2.Close();
}