如何在C#循环中用索引声明变量添加MapPolyline
循环添加MapPolyline的C#正确实现
在循环中向地图添加多个MapPolyline时,必须每次创建新的实例——如果复用同一个实例,后续的赋值会覆盖之前的配置,最终地图上只会显示最后一条折线。
以下是正确的C#实现代码:
// 假设collections是存储LocationCollection的目标集合 for (int i = 0; i < collections.Count; i++) { // 每次循环创建全新的MapPolyline实例 MapPolyline mapPolyline = new MapPolyline(); // 配置折线样式 mapPolyline.Stroke = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Orange); mapPolyline.StrokeThickness = 2; mapPolyline.Opacity = 0.8; // 绑定当前循环项对应的位置集合 mapPolyline.Locations = collections[i]; // 将折线添加到地图控件的子元素列表 mymap.Children.Add(mapPolyline); }
核心注意点
- 循环内每次执行
new MapPolyline():确保每条折线都是独立的对象,不会被后续循环的操作覆盖属性值。 - 绑定对应索引的
LocationCollection:避免所有折线共用同一组坐标数据,保证每条折线展示对应的数据。
内容的提问来源于stack exchange,提问作者Luis Novais Reis
相关产品推荐
相关产品推荐

