我们能在表单之外绘制图像和文本吗?我的意思是真正的在表单之外。
我知道这是一个愚蠢的问题,但我们真的可以吗?
你可以通过创建一个表单并将其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);
你无法在不存在的东西上绘制。按照这个定义,在表单上下文中,表单 外部 的区域是不存在的。
不过我同意 Henk 的观点,你可以在透明表单上进行绘制。