J'ai donc un InkCanvas auquel j'ai ajouté des "traits personnalisés".Comment supprimer les traits personnalisés ajoutés à un WPF InkCanvas DrawingContext ne connaissant que le rectangle de délimitation?
Je suis à une perte complète quant à la façon de effacer coups personnalisés ajoutés aux InkCanvas par son DrawingContext. (Google a été d'aucune aide :() Faire l'hypothèse que j'ai un rectangle de délimitation pour la zone sur l'InkCanvas je veux effacer, comment cela peut-il être fait?
(Je viens rapidement à la conclusion qu'une fois quelque chose est attirée sur le DrawingContext il ne peut pas être supprimé -. convered seulement :()
The Strokes personnalisés sont créés de manière standard en redéfinissant la méthode DrawCore de course, par exemple,
// Draw Rectangle
public class RectangleStroke : Stroke
{
// Constructor
public RectangleStroke(StylusPointCollection pts)
: base(pts)
{
StylusPoints = pts;
}
protected override void DrawCore(DrawingContext drawingContext, DrawingAttributes drawingAttributes)
{
if (drawingContext == null)
{
throw new ArgumentNullException("drawingContext");
}
if (null == drawingAttributes)
{
throw new ArgumentNullException("drawingAttributes");
}
DrawingAttributes originalDa = drawingAttributes.Clone();
SolidColorBrush brush = new SolidColorBrush(drawingAttributes.Color);
brush.Freeze();
Pen pen = new Pen(brush, 1);
StylusPoint stp = StylusPoints[0];
StylusPoint sp = StylusPoints[1];
drawingContext.DrawRectangle(brush, pen, new Rect(new Point(sp.X, sp.Y), new Point(stp.X, stp.Y)));
}
}
Des méthodes similaires aboutissent à une image comme:
Comment les traits personnalisés sont-ils effacés en ne connaissant que le rectangle englobant?
Merci pour toute aide ou suggestion.