0

所以MinZoomLevelMaxZoomLevel是只获取的属性。

我不能继承MapControl和覆盖它们,因为MapControl是密封的。

我可以使用不同MapTileSource的设置并在那里设置ZoomLevelRange,这很有效。

但主要问题是,如何设置MinZoomLevelMaxZoomLevel默认MapControl使用 Bing 地图?我无法在MapTileSourcebing 地图上设置它,因为该字段对于 bing 地图是空的。

编辑:MapTileSource我设置时也不同ZoomLevelRange,它也无济于事。您仍然可以滚动到它之外,但您不会获得数据。所以这只是数据压缩。不是滚动收缩。

4

1 回答 1

0

MinZoomLevel 和 MaxZoomLevel 是只读的,不能设置。

您可以尝试收听ZoomLevelChanged 事件,如果缩放级别超出您想要限制的范围,请将其设置回所需范围内吗?

就像是:

MapControl mapControl = new MapControl();
mapControl.ZoomLevelChanged += MapControl_ZoomLevelChanged;

private void MapControl_ZoomLevelChanged(MapControl sender, object args)
{
     const int maxZoom = 7;
     const int minZoom = 5;

     if (mapControl.ZoomLevel > maxZoom)
     {
         mapControl.ZoomLevel = maxZoom;
     }
     else if(mapControl.ZoomLevel < minZoom)
     {
         mapControl.ZoomLevel = minZoom;
     }
}
于 2016-08-31T01:32:35.940 回答