.net - 如何在 Bing Maps Silverlight 中绑定(bind)最大和最小缩放级别

标签 .net silverlight silverlight-4.0 bing-maps

我想在我的 silverlight 应用程序中为 Bing map 控件实现自定义缩放 slider 。我可以用一种非常简单的方式设置它的机制:

<Slider ... Value="{Binding ZoomLevel, Mode=TwoWay, ElementName=MyMap}"/>

但是,我找不到将 slider 的最大和最小属性绑定(bind)到 map 的最大和最小可用缩放级别的方法。我使用的是默认 View (道路、航拍),没有自定义图 block 集或任何花哨的东西。

我试过这样的:

Maximum="{Binding Path=Map.Mode.ZoomRange.To, Mode=TwoWay}"
Minimum="{Binding Path=Map.Mode.ZoomRange.From, Mode=TwoWay}"

但这行不通。当我的 map 加载时,最小值设置为 0.0,最大值设置为 1.0。 Map.Mode.ZoomRange 的实际值是 1.0 和 17.0(对于我现在查看的特定位置。Max 根据 map 的中心位置而变化)。

如何将这些属性绑定(bind)到我的新自定义 slider ?

最佳答案

您将无法像这样绑定(bind),因为 Mode 不是依赖属性,MapMode 也不是依赖对象。链中的任何其他属性都没有,它们也没有实现 INotifyPropertyChanged。所以绑定(bind)这些几乎是注定的。

您将需要一些代码。可能是 map 的 ModeChanged 事件在范围更改时触发,在这种情况下,您可以更新该点的最小值/最大值。

使用 View 更改事件之一失败,如 TargetViewChangedViewChangeEnd

关于.net - 如何在 Bing Maps Silverlight 中绑定(bind)最大和最小缩放级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3788119/

相关文章:

.net - 用颜色覆盖WriteableBitmap

silverlight - 找到更好的控制

c# - 更新应用程序时的 WP7 隔离存储

c# - 如何在不同线程中同时使用队列

c# - WMEncoder 在一次迭代后抛出 OutOfMemoryException

c# - 我如何对 ObservableCollection<T> 进行排序,以便我的 UI 也能看到排序过程?

silverlight - Windows Phone 7 弹出窗口

c# - System.Diagnostics.TraceSource 中跟踪输出的格式

c# - 相当于绘图应用程序的橡皮擦、c#、silverlight、wp7

wpf - 在 MVVM 中使用 Code Behind View 作为 View Model 可以吗?