实现任意图像的可点击地图



我有一个C#WPF应用程序,其中我有几个可能的图像,有些图像中有不规则的形状。我想在点击图像中的不同形状时生成不同的事件。

例如:如果图像是房子的正面,我会在点击门把手、门、窗户、屋顶等时产生不同的事件。

图像必须可调整大小。

我可以用网格和形状手动完成,但似乎应该有一种更优雅的方式。

我想我看到了一种技术,你可以制作一个像原始图像一样的"阴影"图像,但每个可点击的区域都填充了不同的颜色。(可点击区域的"颜色图"。)然后点击处理程序可以访问阴影图像的颜色并引发适当的事件。然而,我不知道如何将阴影图像隐藏在显示图像的"下面",并且仍然让单击事件处理程序拾取颜色。

我相信有一个很好的方法来处理这个问题,我只是通常不处理图像,所以我完全不知道。

谢谢。

让漂亮的图像在Z顺序中高于"阴影图像"并设置topImage怎么样。IsHitTestVisible=false;

这将导致点击绕过顶部可见图像,直接进入底层阴影图像点击处理程序。

我在生产代码中使用的另一种技术是从Image派生一个新类,覆盖HitTestCore并自己测试像素值,如果它是某种颜色或不透明度,我会返回一个不同的对象。这样我就能控制所有的动作。

相关内容

  • 没有找到相关文章

最新更新