实现InkCanvas笔画的命中测试
本文关键字:测试 InkCanvas 笔画 实现 | 更新日期: 2023-09-27 18:12:25
我已经实现了一个自定义InkCanvas和多个自定义笔画,描述如下:自定义渲染墨水
一切都很好,除了我不能对我的笔划做命中测试。在上面链接的"实现自定义笔画"部分,上面写着:
Stroke类也可以执行命中测试。你也可以通过覆盖当前类中的HitTest方法来实现你自己的命中测试算法。
但是我在那里找不到任何可覆盖的HitTest方法!!
谁能帮我实现一个自定义笔画命中测试?
谢谢
我找到解决办法了。
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);
}