c# - 时间:2019-06-10 标签:c#drawing,circleguesoutform
问题描述
我试图在我的表格中画一个圆圈。但对我来说很奇怪,我将表单宽度和高度设置为固定数字,我对圆圈做同样的事情,但圆圈图形超出了表单。
private void Form3_Paint(object sender, PaintEventArgs e)
{
this.SuspendLayout();
gr = this.CreateGraphics();
gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
Brush fill_circ3 = Brushes.Blue;
Pen ellipse_pen = new Pen(Color.Blue);
ellipse_pen.Width = (float)2.0;
this.Width = this.Height = 400;
Rectangle rect = new Rectangle(0, 0, this.Width, this.Height);
gr.DrawEllipse(ellipse_pen, rect);
this.ResumeLayout();
}
Rectangle 构造函数的第 3 和第 4 个参数定义了圆的宽度和高度。
看到我得到的圈子
为什么圆圈会超出表格??!我已将表格和圆圈的大小设置为相同!!!!
解决方案
这是因为您使用的是 Window 大小,而不是“客户端”大小。只需用以下代码替换您的代码:
gr.DrawEllipse(ellipse_pen, this.ClientRectangle);
控件的客户区是控件的边界,减去滚动条、边框、标题栏和菜单等非客户元素。
推荐阅读
- pandas - 多指标值
- python - 使用 webhook 中的数据填充 html 表单输入
- angular - RxJS observables 在没有错误回调的情况下捕获错误
- angular - 使用 docker 容器中的 startup.sh 文件构建具有动态环境的 Angular 应用程序
- selenium-webdriver - Docker 映像错误“服务 chromedriver 意外退出。状态代码为:127”
- python - 如何在python中添加带有chrome selenium身份验证的代理
- python - Tensorflow SparseCategoricalCrossentropy 是如何实现的?
- cluster-computing - 如何找到已完成的 SLURM 作业的排队时间?
- amazon-web-services - AWS CodeDeploy 一直失败 - 找不到平台:没有清单
- c - 如何让 SDL_Keypress 在按键循环期间检测到新的按键?