有人可以提供一个不使用Windows窗体绘制图形的例子吗?我有一个没有控制台窗口或Windows窗体的应用程序,但我需要绘制一些基本图形(线条和矩形等)。在不使用Windows窗体的情况下绘制C#图形
希望有道理。
有人可以提供一个不使用Windows窗体绘制图形的例子吗?我有一个没有控制台窗口或Windows窗体的应用程序,但我需要绘制一些基本图形(线条和矩形等)。在不使用Windows窗体的情况下绘制C#图形
希望有道理。
正确的,我已经做到了与Windows表单的方式,但使背景透明,然后干掉所有的边界.. 。
感谢反正回信..
Ĵ
这样的事情?
using System.Drawing;
Bitmap bmp = new Bitmap(200, 100);
Graphics g = Graphics.FromImage(bmp);
g.DrawLine(Pens.Black, 10, 10, 180, 80);
这个问题有点不专心。具体来说 - 你想在哪里绘制线条和矩形?一般来说,您需要一个绘图表面,通常由窗体提供。
哪里需要避开窗体来自哪里?
您是否在使用另一种窗口?
Windows窗体你可以使用类似的代码如下:
namespace WindowsFormsApplication1 {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
protected override void OnPaint(PaintEventArgs e) {
base.OnPaint(e);
e.Graphics.DrawLine(new Pen(Color.DarkGreen), 1,1, 3, 20);
e.Graphics.DrawRectangle(new Pen(Color.Black), 10, 10, 20, 32);
}
}
}
通常你可以做到这一点用,可以让你得到一个处理一个“图形”对象(如打印机)的任何对象。
这应该给你一个良好的开端:
[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);
}
}
}
这将是一个闪烁的地狱 – 2010-04-29 09:37:41
如果你需要画一些图形?在一个文件? – 2010-03-11 13:03:18
告诉我们你的应用程序可以绘制图形。 – 2010-03-11 13:06:04
我做一个鼠标手势的应用程序,所以我想绘制到屏幕上没有一个可见的窗口。 – 2010-03-11 13:07:07