【问题标题】:How to draw an ellipse C# via GDI?如何通过 GDI 绘制椭圆 C#?
【发布时间】:2012-07-20 15:47:27
【问题描述】:

我是 C# 的新手,我正在尝试绘制一个填充颜色的椭圆,我找到了一些代码,但我不知道该怎么做。

我尝试使用此代码:

Graphics g = this.CreateGraphics();
Pen pen = new Pen(Color.Aquamarine, 2);
g.DrawEllipse(pen, 10, 10, 100, 20);

但是方法不存在。

你能帮帮我吗?

提前致谢。

【问题讨论】:

  • 哪种方法不存在?绘制椭圆?
  • 我也没有,因为这个方法存在:msdn.microsoft.com/en-us/library/wt06kxfd.aspx你得到什么错误信息?
  • 您是否包含了 system.drawing?
  • Graphics 真的表示System.Drawing.Graphics 而不是其他同名类型吗?

标签: c# winforms gdi+ system.drawing


【解决方案1】:

您应该在“Paint Event”表单中进行图形绘制,否则一旦屏幕更新,您的绘图就会丢失。这是一个关于如何执行此操作的快速而肮脏的示例。

public Form1()
{
    InitializeComponent();
    this.Paint += new PaintEventHandler(Form1_Paint);
}

void Form1_Paint(object sender, PaintEventArgs e)
{
    Pen pen = new Pen(Color.Aquamarine,2);
    SolidBrush brush = new SolidBrush(Color.Aquamarine);

    e.Graphics.DrawEllipse(pen, 10, 10, 100, 20);
    e.Graphics.FillEllipse(brush, 10, 50, 100, 20);
}

【讨论】:

  • 这并不能真正处理据称找不到的DrawEllipse 方法。
  • @O.R.Mapper 是的,它确实是因为它是 PaintEventHandler 的一部分,我不知道他为什么不能以他尝试的方式访问它,但我知道他可以通过这种方式访问​​它。如果他不使用 PaintEvent 来绘制图像,他将无法保留图像。
  • 成为PaintEventHandler 的一部分不会改变DrawEllipse 的可见性 - 该方法应该像在原始代码中一样可以调用。显然,问题中缺少一些信息;让我们看看 OP 是否提供任何其他信息。
猜你喜欢
  • 2011-03-27
  • 1970-01-01
  • 2016-02-05
  • 1970-01-01
  • 2017-08-31
  • 2013-01-05
  • 1970-01-01
  • 1970-01-01
  • 2012-09-04
相关资源
最近更新 更多