Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在winform的中心定位System.Drawing shape对象_C#_Winforms - Fatal编程技术网

C# 如何在winform的中心定位System.Drawing shape对象

C# 如何在winform的中心定位System.Drawing shape对象,c#,winforms,C#,Winforms,我只是试图在windows窗体的中心绘制一个矩形,但当我在窗体的中心坐标处绘制形状并平移以说明原点位于左上角时,它仍然没有居中。守则: namespace form_art { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Paint(objec

我只是试图在windows窗体的中心绘制一个矩形,但当我在窗体的中心坐标处绘制形状并平移以说明原点位于左上角时,它仍然没有居中。守则:

namespace form_art
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            var g = e.Graphics;

            var rectangle = new Rectangle(250-100, 250-100, 200, 200);
            g.DrawRectangle(Pens.Aqua, rectangle);

        }
    }
}
表单的尺寸是500 x 500像素。因此,我在x:250,y:250处绘制矩形,然后减去矩形高度和宽度的一半,以说明原点的位置。
如@ 41686D6564所说,如果要在面板或窗体的中间绘制形状,请使用<强> > clitSig.Weld和<强> clitSigul.Health。 例如

formGraphics.DrawRectangle(MyPen, 
new Rectangle((this.ClientSize.Width/2)-(x/2), (this.ClientSize.Height/2)-(y/2), x, y));

使用ClientRectangle标注。当使用
ClientRectangle
ClientSize
时,不要获取其宽度和高度值,并像现在这样对其进行硬编码。相反,使用
this.ClientSize.Width
this.ClientSize.Height
@AhmedAbdelhameed I仅硬编码显示此示例。这不是我真正的项目。我是否正确使用客户端矩形(/这返回相同的结果)?变量矩形=新矩形((ClientRectangle.Height/2)-50,(ClientRectangle.Width/2)-50100100);因为您已将宽度和高度调出。在矩形构造函数参数中,
x
应取决于宽度,
y
应取决于高度。