首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Visual Studio中使用Windows Forms和C#,有没有一种方法可以让Graphics.DrawEllipse函数完全按照指定的方式绘制椭圆?

在Visual Studio中使用Windows Forms和C#,有没有一种方法可以让Graphics.DrawEllipse函数完全按照指定的方式绘制椭圆?
EN

Stack Overflow用户
提问于 2019-11-13 12:34:09
回答 1查看 88关注 0票数 1

我正在学习使用Windows Forms for Visual Studio进行C#和图形编程,我遇到了一个问题,调用DrawEllipse并传递一个窗口大小的矩形会导致椭圆在窗口的右侧和底部移出窗口。

下面是绘制椭圆的代码:

代码语言:javascript
复制
    private void Form1_Paint(object sender, PaintEventArgs e)
    {
        e.Graphics.Clear(Color.FromArgb(0, 0, 40));
        e.Graphics.DrawEllipse(new Pen(Color.FromArgb(0, 150, 0)), new Rectangle(0, 0, this.Width, this.Height));
    }

当这段代码运行时,它会产生以下结果:Ellipse drawn in window

我已经尝试过在Form1_Load函数中设置窗口大小,这并没有改变任何东西。是否有一些属性我应该在某个时候进行更改?我发现很难相信this.Widththis.Height实际上与窗口的尺寸不匹配。以前有没有其他人遇到过这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-13 12:49:12

当您使用Form.WidthForm.Height时,您得到的是表单的尺寸,包括非工作区。尝试使用Form.ClientSize.WidthForm.ClientSize.Height

也就是说。

代码语言:javascript
复制
private void Form1_Paint(object sender, PaintEventArgs e)
{
    e.Graphics.Clear(Color.FromArgb(0, 0, 40));
    e.Graphics.DrawEllipse(new Pen(Color.FromArgb(0, 150, 0)), new Rectangle(0, 0, this.ClientSize.Width-1, this.ClientSize.Height-1));
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58830386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档