我之前使用System.Windows.Shapes
将Shapes
添加到Canvas
- 控件。
它们可以像对象一样使用,当我编辑字段时,视觉效果会发生变化。我还可以为点击等添加事件处理程序。
使用Win2D
我需要这种功能。有什么简单的方法吗?
我试图像这样创建一个简单的应用程序:
我想一种方法是使用Shape
- 方法创建自定义Draw
类。然后,我只操纵对象 - 而更改将通过Draw
- 方法反映到视觉效果。在每个画布失效时,将再次绘制对象。
有什么想法吗?
答案 0 :(得分:1)
Win2D可以帮助您进行命中测试。对于具有填充颜色的几何图形,然后使用CanvasGeometry.FillContainsPoint(...),对于仅具有轮廓/笔划的几何图形,请使用CanvasGeometry.StrokeContainsPoint(...)。使用这两种方法,您将获得准确的命中测试。对于非矩形形状,包括旋转的矩形,使用边界不准确。
对于z-indexing,您必须跟踪几何的顺序,并从上到下遍历列表,直到PointerPoint
达到某种程度。
如果您的几何图形列表太大并且您注意到滞后,那么您可以先使用边界开始命中测试,如果失败,继续下一个项目,如果它命中,则使用上述方法获得准确读数。