В общем, проблема такова, при нажатии на 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);
}
В итоге при нажатии на разные места панели получаются разные фигуры
Как видно, фигуру растягивает и увеличивает в размере.
Что можно сделать, чтобы исправить эту ошибку?
Ответ
g.DrawRectangle(..., ..., ..., width, height);
то есть
g.DrawRectangle(BlackPen,
Location.X,
Location.Y,
80,
80);
Комментариев нет:
Отправить комментарий