我想在我的 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 更改事件之一失败,如 TargetViewChanged
或 ViewChangeEnd
。
关于.net - 如何在 Bing Maps Silverlight 中绑定(bind)最大和最小缩放级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3788119/