【问题标题】:How can I draw a filleeliipse on pictureBox corners?如何在图片框的角上绘制圆角?
【发布时间】:2021-10-22 02:54:42
【问题描述】:

我正在尝试在 0,0 处绘制一个椭圆,它正在工作,但在 pictureBox1.Width 的另一侧它没有绘制任何东西:

private void pictureBox1_Paint(object sender, PaintEventArgs e)
        {
            e.Graphics.FillEllipse(Brushes.Purple, 0, 0, 5, 5);
            e.Graphics.FillEllipse(Brushes.Purple, pictureBox1.Width, 0, 5, 5);
        }

结果是一个椭圆在左侧填充为 0,0,但在右侧什么也没有。 右边的黄色附近也应该有一个小的紫色点。

然后在pictureBox1的4个角上绘制实心椭圆。

【问题讨论】:

  • 它离右边太远了。考虑 pictureBox1.ClientSize.Width - 5 或更少。

标签: c# winforms


【解决方案1】:

结果是一个椭圆在左侧填充为 0,0,但在右侧什么也没有。右边的黄色附近也应该有一个小的紫色点。

这是因为它有点不在屏幕上,您需要调整X 坐标。

 e.Graphics.FillEllipse(Brushes.Purple, pictureBox1.Width - 5, 0, 5, 5);

如果您想要所有四个角:

 int circleSize = 5;

 e.Graphics.FillEllipse(Brushes.Purple, 0, 0, circleSize, circleSize); //top left
 e.Graphics.FillEllipse(Brushes.Purple, pictureBox1.Width - circleSize, 0, circleSize, circleSize); //top right
 e.Graphics.FillEllipse(Brushes.Purple, pictureBox1.Width - circleSize, pictureBox1.Height - circleSize, circleSize, circleSize); //bottom right
 e.Graphics.FillEllipse(Brushes.Purple, 0, pictureBox1.Height - circleSize, circleSize, circleSize); //bottom left

【讨论】: