为InkCanvas的笔划实现命中测试

时间:2016-10-11 11:19:10

标签: c# wpf canvas

我已经实现了自定义InkCanvas和多个自定义笔划,这些描述如下: Custom Rendering Ink

每件事情都很好,除了我不能在我的笔画上进行命中测试。 在"实施自定义笔划"上面链接的部分,它说:

  

Stroke类也可以执行命中测试。您还可以通过覆盖当前类中的HitTest方法来实现自己的命中测试算法。

但是我找不到任何可以覆盖的HitTest方法版本!!!

有人可以帮我实现自定义击中的命中测试吗?

由于

1 个答案:

答案 0 :(得分:0)

好吧,找到了解决方案。

    protected override void OnPreviewMouseDown(MouseButtonEventArgs e)
    {
        if (EditingMode == InkCanvasEditingMode.Select)
        {
            var strokes = Strokes.Where(x => (x is CustomStroke) && ((CustomStroke)x).HitTestPoint(e.GetPosition(this))).ToList();

            if (strokes.Any())
                Select(new StrokeCollection(strokes));
        }
        base.OnPreviewMouseDown(e);
    }