私は "カスタムストローク"を追加したInkCanvasを持っています。WPFに追加されたカスタムストロークを削除する方法境界矩形だけを知っているInkCanvas DrawingContext?
私はカスタムストロークはそのDrawingContextではを通じてInkCanvasにを追加する方法に消去するよう完全な損失でいます。 (Googleは助けになっていない:()私は消去したいInkCanvas上の領域の境界矩形を持っていると仮定して、どうすればいいのですか?
(私はすぐに結論に至りました何かDrawingContextでは上に描画され、それを削除することはできません - 。のみconvered :()
カスタムストロークはストロークの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)));
}
}
境界線の矩形のみを知っているカスタムストロークはどのように消去されますか?
ご協力ありがとうございます。