我正在使用C#在WPF中创建一些“地图应用程序”。我使用Visual Blend 2绘制国家的边界,因此我得到了Path对象(用XAML编写)。 Path是第一个点==最后一个点的对象,因此路径始终是关闭的。一些国家(如日本)有一些岛屿,因此一个国家有一条以上的道路。
我正在尝试向这些对象添加一些行为(国家/地区 - 所以有一条或多条路径),例如当用户鼠标进入某个国家/地区时(或者IsMouseOver属性为'true' - 但这里没关系),国家/地区正在改变他们的背景颜色。
某些国家== 1路径,没有问题。但是,如果某些国家有多条路径,我该怎么办?
所以我的问题是:如何在一个对象中对路径进行分组?
我试图使用GeometryGroup类,但我无法正确使用它...
你有什么想法吗?
答案 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
实例变量,它将管理背景颜色。
然后,您需要将路径的鼠标悬停事件连接到正确的国家/地区。