Страницы

Поиск по вопросам

воскресенье, 8 марта 2020 г.

Нарисованная фигура не соответствует заданным координатам

#c_sharp #winforms #graphics


В общем, проблема такова, при нажатии на panel создается объект Block и происходит
его отрисовка:

    private void DrawingPanel_Click(object sender, EventArgs e)
    {
        Point ptr = PointToClient(Cursor.Position);
        ptr.X -= DrawingPanelOffset.X;
        ptr.Y -= DrawingPanelOffset.Y;

        b = new Block(0, "Class", "Model", ptr);
        DrawingPanel.Invalidate();
    }

    private void DrawingPanel_Paint(object sender, PaintEventArgs e)
    {
        if (b != null)
            b.Draw(e.Graphics);
    }


Непосредственно код блока

    public void Draw(Graphics g)
    { 
        Pen BlackPen = new Pen(Color.Black, 4);      
        g.DrawRectangle(BlackPen,
                        Location.X,
                        Location.Y,
                        Location.X + 80,
                        Location.Y + 80);
    }


В итоге при нажатии на разные места панели получаются разные фигуры





Как видно, фигуру растягивает и увеличивает в размере.
Что можно сделать, чтобы исправить эту ошибку?
    


Ответы

Ответ 1



g.DrawRectangle(..., ..., ..., width, height); то есть g.DrawRectangle(BlackPen, Location.X, Location.Y, 80, 80);

Комментариев нет:

Отправить комментарий