如何分组Path对象?

时间:2011-03-02 13:08:34

标签: c# wpf xaml

我正在使用C#在WPF中创建一些“地图应用程序”。我使用Visual Blend 2绘制国家的边界​​,因此我得到了Path对象(用XA​​ML编写)。 Path是第一个点==最后一个点的对象,因此路径始终是关闭的。一些国家(如日本)有一些岛屿,因此一个国家有一条以上的道路。

我正在尝试向这些对象添加一些行为(国家/地区 - 所以有一条或多条路径),例如当用户鼠标进入某个国家/地区时(或者IsMouseOver属性为'true' - 但这里没关系),国家/地区正在改变他们的背景颜色。

某些国家== 1路径,没有问题。但是,如果某些国家有多条路径,我该怎么办?

所以我的问题是:如何在一个对象中对路径进行分组?

我试图使用GeometryGroup类,但我无法正确使用它...

你有什么想法吗?

2 个答案:

答案 0 :(得分:4)

你的路径可以有多个'M'没有问题,它可以正常使用path.Fill。最终它取决于你正在绘制的一种形象。

以下是一个示例:

<Path Data="M10,10 h100 v100 h-100z M30,30 h50 v50 h-50z" 
     Stroke="Gray" 
     StrokeThickness="1" 
     Fill="Blue"/>
如果您使用代码,请

Geometry.Parse("M10,10 h100 v100 h-100z M30,30 h50 v50 h-50z")

答案 1 :(得分:1)

创建一个普通的C#类,用作国家/地区的逻辑模型。然后它可以包含一个List<Path> CountryBoundaries实例变量,它将管理背景颜色。

然后,您需要将路径的鼠标悬停事件连接到正确的国家/地区。