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

时间:2017-01-25 14:51:15

标签: c# uwp win2d

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

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

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

  • 用户可以将形状绘制到画布
  • 点击
  • 可以选择并突出显示形状
  • 可以操纵选定的形状(颜色,不透明度,宽度,高度,位置等)
  • 形状可以相互分层(Z-index)

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

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

Win2D可以帮助您进行命中测试。对于具有填充颜色的几何图形,然后使用CanvasGeometry.FillContainsPoint(...),对于仅具有轮廓/笔划的几何图形,请使用CanvasGeometry.StrokeContainsPoint(...)。使用这两种方法,您将获得准确的命中测试。对于非矩形形状,包括旋转的矩形,使用边界不准确。

对于z-indexing,您必须跟踪几何的顺序,并从上到下遍历列表,直到PointerPoint达到某种程度。

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