У меня возник вопрос относительно того, как я могу помешать некоторому контенту, нарисованному на панели управления, стереть, когда действие прокрутки выведет его из вида.Как предотвратить удаление содержимого панели при прокрутке
То, что я пытаюсь сделать, это создать 2D-редактор плитки. Всякий раз, когда на панели появляется событие щелчка мыши, плитка должна быть нарисована на панели. У меня это нормально работает. Но если я поместил объект на панель и прокрутился в сторону, а прокрутил назад, объект, который я разместил, исчез.
Я провел некоторое исследование, и я видел предложения по реализации события краски. Проблема в том, что я не понимаю, что здесь реализовать. Я думаю, что большая часть моей борьбы исходит из не полностью понимания объекта Graphics.
Вот некоторые из моего кода:
private void canvas_MouseClick(object sender, MouseEventArgs e)
{
Graphics g = canvas.CreateGraphics();
float x1 = CommonUtils.GetClosestXTile(e.X);
float y1 = CommonUtils.GetClosestYTile(e.Y);
if (currentTile != null)
{
g.DrawImage(currentTile, x1, y1);
me.AddTile((int)currX, (int)currY, (int)x1, (int)y1, "C:\\DemoAssets\\tileb.png");
}
else
{
// dont do anything
}
g.Dispose();
}
private void canvas_Paint(object sender, PaintEventArgs e)
{
// update here?
}
Благодаря Idle_Mind! Это прекрасно работает и имеет смысл для меня! – urbanspr1nter