使用 Win2D 绘制可编辑和可选择的形状?

Drawing editable and selectable shapes with Win2D?

我之前使用 System.Windows.ShapesShapes 添加到 Canvas-controls。 它们可以像对象一样使用,并且当我编辑字段时视觉效果会发生变化。我还可以为点击等添加事件处理程序。

我需要使用 Win2D 这种功能。有什么简单的方法吗?

我正在尝试创建一个像这样的简单应用程序:

我想一种方法是使用 Draw 方法创建自定义 Shape 类。然后我只会操纵对象 - 并且更改会通过 Draw 方法反映到视觉效果。在每次 canvas 失效时,将再次绘制对象。

有什么想法吗?

Win2D 可以帮助您进行命中测试。对于具有填充颜色的几何图形,则使用 CanvasGeometry.FillContainsPoint(...) and for geometries that only have an outline/stroke, use CanvasGeometry.StrokeContainsPoint(...)。使用这两种方法,您将获得准确的命中测试。对于非矩形形状(包括旋转的矩形),使用边界不准确。

对于 z 索引,您必须跟踪几何图形的顺序并从上到下遍历列表,直到 PointerPoint 命中某些东西。

如果你的几何列表太大并且你注意到一个滞后,那么你可以先使用边界开始命中测试,如果失败,继续下一个项目,如果命中,然后使用上述方法获得准确读数。