У меня есть пользовательский элемент управления, который состоит из панели и меньшего pictureBox. Когда я рисую DrawLine слева, сверху вниз, снизу в pictureBox, начальная точка не начинается в углу pictureBox и смещается + x и + y. Если я разворачиваю pictureBox, чтобы охватить весь размер панели, она правильно выстраивается. Что происходит?DrawLine: сверху и слева неверны
PictureBox привязан к вершине, внизу, влево и вправо. Нет стыковки.
private void pictureBoxPlot_Paint(object sender, PaintEventArgs e)
{
base.OnPaint(e);
e.Graphics.DrawLine(Pens.LightGray,
pictureBoxPlot.Left, pictureBoxPlot.Top,
pictureBoxPlot.Right, pictureBoxPlot.Bottom);
pictureBoxPlot.Invalidate();
}
Он задает вопрос, почему вы используете * дополнительный * элемент управления, когда вы также можете использовать событие Paint. Помимо элемента управления, имеющего смещение в панели от ненулевого местоположения, PictureBox также изменяет объект e.Graphics для реализации свойства SizeMode. Конечно, здесь свойство Location. Использование PictureBox - это действительно очень дорогой способ установить для свойства DoubleBuffered значение true. –
Поскольку я рисовал в пределах родительского региона (и за его пределами), я использовал другие элементы управления и думал, что OnPaint() будет их обновлять ... сначала написав код рисования для меня ... Спасибо. – moose