WinForms将非透明字符串绘制为透明形式

时间:2011-11-05 21:10:47

标签: c# .net winforms

我正在构建一个应用程序,我必须在其中显示半透明的形式。我也需要在该表单上绘制一些文本,让用户知道一些信息。 但是,我画的字符串也是半透明的,难以阅读。我想知道是否有办法将非透明字符串绘制成半透明的形式。 我正在使用.NET 4.0,C#和WinForms技术。 目前我在Graphics表单上使用DrawString方法,但是使用Label完全没有效果。 浏览StackOverflow我发现这个How do I make my form transparent, but what I draw on it not?但是它引用了WPF,而我使用的是普通的WinForms。

干杯。

1 个答案:

答案 0 :(得分:1)

这可能会对您有所帮助 - 它会为您提供一个包含非透明文本的完全透明的表单:

初始化组件中的

SetStyle(ControlStyles.SupportsTransparentBackColor, true);
TransparencyKey = BackColor;
ShowInTaskbar = false;
FormBorderStyle = FormBorderStyle.None;

在OnPaint覆盖:

g.DrawString(...) // Use some SolidBrush.

但是,如果你不想要完全透明的形式(这听起来不太好但应该有效),那么你可以使用 TWO 形式:一个半透明背景,没有文字。另一个(在前一个之上)具有完全透明的背景和非透明文本。您可以将一个表单的位置,大小和可见性绑定到另一个表单,以使它们保持同步。