Окно 200х200 с кругом 200х200 не подходит - PullRequest
0 голосов
/ 16 сентября 2018

Я пытаюсь сделать что-то очень простое. Я пытаюсь создать окно, в котором есть круг, который идеально подходит. Я сделал окно 200x200 и круг 200x200, и оно выглядит так enter image description here

Это код, который я сделал:

using System.Windows.Forms;
using System.Drawing;

class HalloForm : Form
{
    public HalloForm()
    {
        this.Text = "Hallo";
        this.BackColor = Color.LightGray;
        this.Size = new Size(200, 200);
        this.Paint += this.tekenScherm;
        this.AutoScaleMode = AutoScaleMode.Font;
    }

    void tekenScherm(object obj, PaintEventArgs pea)
    {

        tekenSmiley(pea, 0, 0, 200);
        /*pea.Graphics.DrawString("Hallo!"
                               , new Font("Tahoma", 30)
                               , Brushes.Blue
                               , 10, 10
                               );*/

        //pea.Graphics.DrawArc(Pens.Black, )

        //pea.Graphics.FillEllipse(Brushes.Black, new Rectangle(new Point(x + 40, y + 40), new Size(50, 50)));
        //pea.Graphics.FillEllipse(Brushes.Black, new Rectangle(new Point(x + 110, y + 40), new Size(50, 50)));
        //pea.Graphics.FillPolygon(Brushes.Black, new Point[] { new Point(x + 85, x + 120), new Point(x + 115, y + 120), new Point(x + 100, x + 90) });
    }

    private void tekenSmiley(PaintEventArgs pea, int x, int y, int grootte)
    {
        pea.Graphics.FillEllipse(Brushes.Yellow, new Rectangle(new Point(x, y), new Size(grootte, grootte)));
    }
}

class HalloWin3
{
    static void Main()
    {
        HalloForm scherm;
        scherm = new HalloForm();
        Application.Run(scherm);
    }
}

Я пробовал разные режимы автоматического масштабирования, и ни один из них ничего не менял. Можете ли вы помочь мне выяснить, почему круг не помещается в окне. Я понимаю, что, возможно, он не будет соответствовать по вертикали, потому что верхняя полоса может быть включена в высоту, но тогда она все равно должна соответствовать по горизонтали.

1 Ответ

0 голосов
/ 16 сентября 2018

Как вы уже упоминали, Size формы включает в себя границы, строки заголовка и т. Д. Итак, попробуйте установить ClientSize, который определяет клиентскую область формы:

this.ClientSize = new Size(200, 200);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...