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