【问题标题】:How do I make a panel x% transparent in WinForms with c#? [duplicate]如何使用 c# 在 WinForms 中使面板 x% 透明? [复制]
【发布时间】:2021-07-18 08:58:55
【问题描述】:

我有一个带有面板和按钮的透明表单。如何使我的面板 x%(即 50%、60%、75%)透明。我知道这可以通过减少或增加不透明度来完成,但是由于我的表单是透明的(使用透明键),所以当我减少不透明度时,面板的颜色会褪色并变成白色。

我浏览过许多网站,但每个网站都告诉我如何使表单完全透明或不透明。

我想用我的面板而不是表单来做到这一点。我只想让我的面板看起来像蓝色镜子或像全息图(2D)。

我有一个带有 .NET 5.0 核心的 WinForms 应用程序。

[注意:This question 可能看起来相似,但我不明白它的答案]

【问题讨论】:

  • @DocBrown 在研究时...我也检查了这个,但我不明白答案
  • 那么你最好的办法是逐一阅读你不理解的答案,并询问他们的作者在他们的特定答案中你不理解的地方。
  • 或者,除了@Doc 的建议之外,发布一个实际引用您试图理解的答案或答案的问题。确保包含正确的minimal reproducible example,并详细说明您尝试了什么、代码的作用、与您想要的有何不同以及具体您需要什么帮助。跨度>

标签: c# winforms


【解决方案1】:

有一个技巧可以做到。按照步骤执行它

  1. 在同一位置放置一个子窗体而不是面板
frmChild.Location = new Point(x, y); //x and y are variables for which you can give the value anything
  1. 给它你要给面板的控件(如按钮、标签等)

  2. 将子窗体的不透明度设置为 x%。
    form2.Opacity = .75;

要详细了解如何设置子窗体的不透明度,您可以访问this websitethis video

要在主窗体中放置一个子窗体,您可以这样做 -

private Form activeForm = null;
private void showChldForm(Form ChldForm, int x, int y) {
    if(activeForm != null)
        activeForm.Close();
    activeForm = ChldForm;
    ChldForm.TopLevel = false;
    ChldForm.FormBorderStyle = FormBorderStyle.None;
    Form1.Controls.Add(ChldForm);
    ChldForm.Location = new Point(x, y); //You can set the child form's location here
    ChldForm.Show();
}

如果你想让表单在点击按钮时出现,或者如果你想让表单在开始时可见,你可以在点击按钮时调用这个方法,在构造函数中调用这个方法

如果您遇到任何错误,请按照代码查看this video,或者您可以在 cmets 中询问我

【讨论】:

    猜你喜欢
    • 2011-05-26
    • 2010-09-28
    • 2015-06-23
    • 1970-01-01
    • 2011-08-09
    • 2011-02-12
    • 2015-10-03
    • 2013-02-26
    相关资源
    最近更新 更多