WPF InkCanvas Z-Index用于笔画

时间:2018-12-13 14:29:39

标签: wpf inkcanvas

在WPF InkCanvas中,墨水显示在顶部,并且笔划没有z-index属性。我还有其他UIElement,例如形状,InkCanvas上的图像,并且无法将UIElement置于顶部。有没有解决此问题的方法。我试过了
下面的东西。

1)使用两种不同的InkCanvas(一种用于笔划,一种用于UIElements) -无法达到三明治效果(即笔触之间的UIElement Something like this in this circle is UIElement 2)使用几何路径遮盖笔触并添加为UIElement -如果我将笔触添加为UIElements(使用路径),那么我将失去擦除功能。

1 个答案:

答案 0 :(得分:0)

我们游戏套件中的地图编辑器使用墨水绘制地形,所以我最近对这种事情有经验。

我的应用程序的工作方式是您选择要绘制的东西(树林,道路,轮廓线等)并使用墨水绘制笔触。

然后我处理该笔触并获得几何形状。 我将其传递给viewmodel> itemssource> itemscontrol。 然后将其模板化为一块地形。 此项目控件在画布下方。 用户可以通过在可观察的集合中上下移动它们的z索引来操纵它们。 我只依赖于定义z-index的顺序。

我还通过序列化保留了每个笔画的数据。

您正在考虑“如何擦除?”。 要做到这一点,我将有一个明确的“擦除此物”模式。 让他们选择一个形状并获取其笔划数据,然后将笔划添加回墨水画布。一旦完成擦除,请使用“保存更改”按钮或其他方法重新处理笔划,然后切换回编辑模式。

由于这是我正在使用的游戏地图编辑器,因此绘图会生成地形的区域和线型,但是它们的区域/线是由笔划转换的几何形状定义的。 ZIndex对应于左侧面板中对象的顺序。可以看到人字形指向上方和下方的按钮可移动 enter image description here

相关问题