如何删除添加到WPF InkCanvas DrawingContext的自定义笔划,只知道边框?

如何删除添加到WPF InkCanvas DrawingContext的自定义笔划,只知道边框?,wpf,inkcanvas,Wpf,Inkcanvas,因此,我有一个InkCanvas,其中添加了“自定义笔划” 我完全不知道如何擦除通过其绘图上下文添加到InkCanvas的自定义笔划。(谷歌对此毫无帮助:()假设我在InkCanvas上要擦除的区域有一个边框,怎么做 (我很快得出结论,一旦在绘图环境中画出某样东西,它就不能被删除——只能转换成:() 自定义笔划是通过覆盖笔划的DrawCore方法以标准方式创建的,例如 // Draw Rectangle public class RectangleStroke : Stroke { //

因此,我有一个InkCanvas,其中添加了“自定义笔划”

我完全不知道如何擦除通过其绘图上下文添加到InkCanvas的自定义笔划。(谷歌对此毫无帮助:()假设我在InkCanvas上要擦除的区域有一个边框,怎么做

(我很快得出结论,一旦在绘图环境中画出某样东西,它就不能被删除——只能转换成:()

自定义笔划是通过覆盖笔划的DrawCore方法以标准方式创建的,例如

// 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)));
    }

}
类似的方法会产生如下图片:

仅知道边界矩形如何擦除自定义笔划


感谢您的帮助或建议。

呃……显而易见的是,自定义笔划继承自笔划,即使数据上下文一旦写入就不能被取消写入,InkCanvas可以通过将InkCanvasEditingMode更改为“按笔划擦除”来擦除其笔划(包括自定义笔划)。希望这对其他人有所帮助