绘制/绘制外形

Moo*_*oon 6 c# paint draw winforms

我们可以在一个表格之外绘制图像和绘制文本......我的意思是字面上在外...

我知道要问的愚蠢问题,但我们能......

小智 10

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

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

[DllImport("User32.dll")]
public static extern IntPtr GetDC(IntPtr hwnd);
[DllImport("User32.dll")]
public static extern void ReleaseDC(IntPtr dc);
Run Code Online (Sandbox Code Playgroud)
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);
Run Code Online (Sandbox Code Playgroud)

  • 直接绘制到桌面窗口的问题是它不会粘住.下次告诉桌面重绘时,您的绘图将消失.虽然您可以挂钩桌面的消息泵并在重绘时重绘,但这是严重的过度杀伤.使用拥有主窗口的全屏透明窗口是到达那里最便宜的方式. (4认同)