4

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

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

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

  • 用户可以在画布上绘制形状
  • 可以通过单击来选择和突出显示形状
  • 可以操纵选定的形状(颜色、不透明度、宽度、高度、位置等)
  • 形状可以相互叠加(Z-index)

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

有任何想法吗?

4

1 回答 1

2

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

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

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

于 2017-03-22T08:01:34.053 回答