不使用Windows窗体绘制C#图形

Jas*_*ill 0 c# graphics

有人可以提供一个不使用Windows窗体绘制图形的示例吗?我有一个没有控制台窗口或Windows窗体的应用程序,但我需要绘制一些基本图形(线条和矩形等)

希望有道理.

stm*_*max 5

这应该会给你一个良好的开端:

  [TestFixture]
  public class DesktopDrawingTests {
    private const int DCX_WINDOW = 0x00000001;
    private const int DCX_CACHE = 0x00000002;
    private const int DCX_LOCKWINDOWUPDATE = 0x00000400;

    [DllImport("user32.dll")]
    private static extern IntPtr GetDesktopWindow();

    [DllImport("user32.dll")]
    private static extern IntPtr GetDCEx(IntPtr hwnd, IntPtr hrgn, uint flags);

    [Test]
    public void TestDrawingOnDesktop() {
      IntPtr hdc = GetDCEx(GetDesktopWindow(),
                           IntPtr.Zero,
                           DCX_WINDOW | DCX_CACHE | DCX_LOCKWINDOWUPDATE);

      using (Graphics g = Graphics.FromHdc(hdc)) {
        g.FillEllipse(Brushes.Red, 0, 0, 400, 400);
      }
    }
  }
Run Code Online (Sandbox Code Playgroud)