c# - 如何在 C# 中使 UserControls BackColor 透明?

标签 c# user-controls drawing

我在 Windows 窗体用户控件中创建了一个简单的火柴人(由一个单选按钮、三个标签和一个进度条组成)。

我将新用户控件的背景颜色设置为透明,这样当我将它拖到我的窗体上时,它会与窗体上的其他颜色和绘图混合。 我没有得到我想要达到的目标。

这是图片:

enter image description here

最佳答案

UserControl 已经支持这个,它的 ControlStyles.SupportsTransparentBackColor 样式标志已经打开。您所要做的就是将 BackColor 属性设置为 Color.Transparent。

接下来您需要记住的是,这种透明度是模拟的,它是通过要求控件的父级绘制自身来生成背景来完成的。所以重要的是你正确地设置了 Parent 。如果父级不是容器控件,这就有点棘手了。像一个图片框。设计者将使窗体成为父窗体,因此您将看到窗体的背景,而不是图片框。您需要在代码中修复该问题,编辑表单构造函数并使其看起来类似于以下内容:

var pos = this.PointToScreen(userControl11.Location);
userControl11.Parent = pictureBox1;
userControl11.Location = pictureBox1.PointToClient(pos);

关于c# - 如何在 C# 中使 UserControls BackColor 透明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14305950/

相关文章:

c# - 如何使用户控件的背景透明?

c# - 使用 ASCII 字符绘制 2 个相邻的矩形

java - 创建自定义绘制方法 - Graphics 2D g2 为空

c# - 我如何捕获页面无法加载消息?

c# - 为什么 TextChanged 事件在此 Xamarin.Android 代码中不起作用?

c# - 动态用户控件更改 - WPF

c# - 如何使用文件名从程序集中加载用户控件?

python - 我可以在一个 Canvas 的顶部和另一个 Canvas 的内部进行绘制吗?

c# - 查询在 phpMyAdmin 中工作正常,但在应用程序中则不行(C#)

c# - 如何在 C# 代码后面的按钮中添加 StackPanel