undo heh dans vraiment non que dur comme ça sonne. La magie ici que vous devez enregistrer chaque action comme objet qui est peint dans une liste ou une file d'attente, f.ex, l'utilisateur trace une ligne, de sorte que votre enregistrement pourrait ressembler à x, y de poing start, et x, y de point final ou objet lui-même qui ont la méthode Draw(), donc ce que l'annulation fera suffit de supprimer cet objet.
dans le code qui pourrait ressembler à ceci:
interface IDrawObject
{
public void Draw();
}
class Line : IDrawObject
{
private Point _startP;
private Point _endP;
public Line(Point startPoint; Poing endPoint)
{
_startP = startPoint;
_endP = endPoint;
}
public void Draw()
{
//* call some generic draw processor to perform the action with your given parameters.
}
}
class Rectangle : IDrawObject
{
//* your code.
public void Draw()
{
//* call some generic draw processor to perform the action with your given parameters.
}
}
//* then in your code, you could have something like this.
List<IDrawObject> myObjectsINeedToDraw = new List<IDrawObject>();
myObjectsINeedToDraw.Add(new Line(new Point(0, 0), new Point(10, 10));
foreach(IDrawObject objectToDraw in myObjectsINeedToDraw)
{
//* will draw your object.
objectToDraw.Draw();
}
//* in this way you will have unlimited history of your objects, and you will always can remove object from that list.
Comment définiriez-vous « dernier » la peinture? Dites que je dessine une ligne en faisant glisser la brosse. Est-ce que c'est une peinture ou plusieurs? Si vous cherchez une classe .NET qui fera cela pour vous, vous pourriez être hors de la chance. –
Ce serait une peinture. Je ne cherche pas vraiment un cours. – Tanner