有没有办法让UI中的GeometryDrawing交互? (或如何在WPF中加载SVG图像并与之交互)

我是WPF的新手,几天来我一直在努力想弄清楚如何与矢量图像的元素进行交互。 在我的例子中是GeometryDrawing元素。

我知道在WPF中,当需要创建交互式GUI元素时,通常会使用形状,因为它们是uielements,因此有各种各样的事件处理优点。 遗憾的是,我需要与GeometryDrawings集合进行交互,这些集合似乎不是为交互性而设计的。

我的问题:

我需要加载SVG图像并允许用户与其中的一些元素进行交互。 想象一下,加载SVG地图并使一些国家可以点击。

我管理的内容:

我设法使用一个名为SvgToXaml的非常酷的库将SVG转换为xaml。

使用此库,我可以加载给定的SVG图像并将其转换为xaml。 所以转换后我最终得到这样的东西:

                 

我使用这个xaml作为图像源,我可以渲染图像但我还没弄清楚如何与它的元素进行交互。

我认为,因为我将SVG转换为XAML,我应该能够识别形状或几何形状并与之交互。

到目前为止,我还没有找到办法,谷歌似乎无法帮助我找到解决方案。

甚至可以与GeometryDrawing或DrawingImage元素进行交互吗?

在WPF中还有其他方法可以实现吗? 我的另一种方法是使用javascript处理HTML来解析SVG并将事件处理程序添加到我需要与之交互的元素中。 但我希望使用WPF。

非常感谢你的建议。

因此,虽然你的问题太宽泛而无法得到完整的答案(也许如果其他人有这样的空闲时间,我猜)但我至少可以提供一个与你的目标相关的快速示例。 您可以在任何地方放置以下示例并给它一个镜头。 PoC传达的是你如何以各种方式与Path交互(RedO on MouseOver,Green on Click)但我没有花时间连接任何实际的命令或任何东西,因为现实上这会变得更多的工作和我可能会做一些事情,比如将每个形状转换为像ToggleButton类型的ButtonBase,以保留像IsChecked这样的属性,并在选择周围制作更好的动画,如Marching Ants等。

无论如何,希望这有助于创造创意。 下面用于PoC的主要工具是Mike Swanson的AI to XAML导出插件和Blend。 希望它有所帮助,欢呼。

视觉示例(在波涛汹涌的GIF中,对不起); 在此处输入图像描述

和你一起玩的一些XAML可以在哪里玩;

PASTEBIN链接:https://pastebin.com/u6qP2qFt

抱歉,必须使用PasteBin来填充示例,超过了提交答案的字符限制。