1

在我使用 XAML 和 C# 的 Metro 应用程序中,我需要在 Map 控件上绘制一些引脚。我发现了几个示例,它们都在文件后面的代码中绘制了引脚(将引脚作为子项添加到地图控件)。有可能以另一种方式吗?(类似于 Windows Phone)

4

1 回答 1

1

您可以创建从 ItemsControl 派生的自定义控件。它将监视 ViewModel 中支持的 ObservableCollection 的更改。然后,您可以从中添加/减去引脚。

注意:这不一定是一项简单的任务。有一些公司为利润创建复杂的控制是有原因的,这肯定是一个更复杂的控制。这几乎不是不可能的,但需要一些工作才能完成,更不用说成功了。

为了让你开始,它很可能需要:

  • 某种背景地图图像
  • 能够将 Pin 中的坐标转换为地图图像上的 (x,y) 像素坐标

您很可能需要覆盖:

  • MeasureOverride:找出地图需要多少空间
  • ArrangeOverride : 找出所有当前孩子的去向
  • OnDisconnectVisualChildren : 移除 pi​​n 时的操作
  • PrepareContainerForItemOverride :为添加/删除的项目创建项目容器

然后,您可以继续添加诸如 childtransitions 之类的东西(因此它们“弹出”)。

然后,您需要做的就是设置您的虚拟机,加载您的引脚,然后您就可以参加比赛了。

好编码!

于 2013-05-07T20:01:28.160 回答