我重新问这个问题,因为我之前的问题被错误地关闭了。
是否可以限制 Bing Maps WPF 控件的缩放?我的目标是防止用户放大得太远而看到并排平铺的多个“世界”。
这不是与 AJAX API 相关的类似问题的重复。AJAX API 和 WPF API 并不相同,在许多方面的功能也大不相同。Zoom 似乎是其中之一,因为尝试实施 AJAX 解决方案(在我问这个问题之前)没有成功。
谢谢!
可能是这样的吗?
private void map_ViewChangeOnFrame(object sender, MapEventArgs e)
{
if (this.bingMap.ZoomLevel < ViewLogic.MinimumZoomLevel)
{
this.bingMap.SetView(this.previousFrameCenter, ViewLogic.MinimumZoomLevel);
e.Handled = true; // Do we need it???
}
else
{
this.previousFrameCenter = this.bingMap.Center;
}
if (this.DoUpdate())
{
// Avoiding "jerking" effect and updating only for certain zoom/pan deltas
this.UpdateModelViewPort();
}
}
似乎 WPF 控件还没有 AJAX 或 SilverLight 强大。很多事情必须手动完成...
您可以通过处理 Map.MouseWheel 事件并在满足阈值时限制缩放增加/减少来尝试蛮力方法
我正在尝试限制整个地图视图 - 处理它很痛苦:)
好吧,这对我来说效果很好,没有任何图形副作用......
private void myMap_ViewChangeOnFrame(object sender, MapEventArgs e)
{
double z = myMap.ZoomLevel;
//Maximum Zoom 19.5
if (z > 19.5)
{
myMap.ZoomLevel = 19.5;
}
//Minimum Zoom 2.5
if (z < 2.5)
{
myMap.ZoomLevel = 2.5;
}
}