Вы можете «обмануть», создав форму и установив для ее свойства 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);