ss_luck
Sheeber
2018-03-05 09:19
采纳率: 33.3%
浏览 3.2k
已采纳

WPF中Canvas画布怎么逐笔清除和清空画布?

WPF中Canvas画布怎么逐笔清除和清空画布?
protected override void OnStrokeCollected(InkCanvasStrokeCollectedEventArgs e)
{
base.Strokes.Remove(e.Stroke); //使用此方法时,请删除之前添加到 InkCanvas 的原始笔划
CustomStroke item = new CustomStroke(e.Stroke.StylusPoints);
base.Strokes.Add(item);
InkCanvasStrokeCollectedEventArgs args = new InkCanvasStrokeCollectedEventArgs(item);
base.OnStrokeCollected(args);
}

            输出Strokes中为空是为什么,在其他位置调用inkCanvas.Strokes.Clear();没有用。
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • qq_39347090
    qq_39347090 2018-03-06 00:38
    已采纳

    如果是需要用brush进行erase那么用System.Windows.Controls.InkCanvasEditingMode.EraseByStroke
    如果是希望Clear的话,用Strokes.Clear即可
    Strokes是指和InkCanvas binding的对象

    点赞 评论
  • devmiao
    devmiao 2018-03-05 15:53
    点赞 评论
  • ss_luck
    Sheeber 2018-03-06 01:14

    在protected override void OnStrokeCollected(InkCanvasStrokeCollectedEventArgs e){}方法外调用Strokes.Clear()时,画布没有清空,而且Strokes为空,该折磨操作

    点赞 评论
  • ss_luck
    Sheeber 2018-03-06 01:31

    inkCanvas.EditingMode = InkCanvasEditingMode.EraseByPoint;

    inkCanvas.EditingMode = InkCanvasEditingMode.EraseByStroke;

    是怎么操作的

    点赞 评论
  • ss_luck
    Sheeber 2018-03-06 02:50

    已经解决,靠人不如靠己啊

    点赞 评论

相关推荐