8

我们可以在表格之外绘制图像和绘制文本吗……我的意思是在外面……

我知道要问这个问题很愚蠢,但是我们可以...

4

2 回答 2

12

您可以通过创建表单并将其 TransparentColor 属性设置为其背景颜色来“作弊”,然后在其上绘制。但是,这会禁止您绘制透明颜色,因为它不会显示。

或者您实际上可以直接绘制到桌面。

[DllImport("User32.dll")]
public static extern IntPtr GetDC(IntPtr hwnd);
[DllImport("User32.dll")]
public static extern void ReleaseDC(IntPtr dc);

IntPtr desktopPtr = GetDC(IntPtr.Zero);
Graphics g = Graphics.FromHdc(desktopPtr);

// Do graphics manipulation here with "g" object

// Very important - free desktop graphics.
g.Dispose();
ReleaseDC(desktopPtr);
于 2010-07-31T18:38:19.897 回答
1

你不能利用不存在的东西。根据该定义,表单之外的区域不存在于表单的上下文中。

不过,我同意 Henk 的观点,你可以使用透明的表格。

于 2010-07-31T18:38:04.823 回答