图钉调整大小绑定zoomlevel

时间:2013-06-18 19:33:34

标签: c# windows-8 winrt-xaml bing-maps

我正在使用带有bing贴图的WinRT,并且我正在尝试在地图上放大时(以编程方式)设置我的图钉的RenderTransform值。 我尝试了这个Solution,但似乎Windows 8控件不支持绑定到ZoomLevel属性。 有没有人有任何解决方法或工作示例? 提前谢谢

2 个答案:

答案 0 :(得分:1)

确定已解决:我只关联更新了缩放级别的ViewChanged事件,在此函数中我创建了RenderTransform属性并将其与我的图钉相关联

答案 1 :(得分:1)

我在这里发布一个例子,如果需要可以从其他人那里使用。利用您使用“ViewChanged”事件的建议我编写了这段代码:

    private double Interpolate(double x0, double y0, double x1, double y1, double x)
    {
        return y0 * (x - x1) / (x0 - x1) + y1 * (x - x0) / (x1 - x0);
    }

    private void mapZoom_Event(object sender, ViewChangedEventArgs e)
    {
        double scale;
        foreach (Pushpin currentPin in currentPins)
        {
            double zoom = Map.ZoomLevel;

            scale = interpolate(10, 1 / 2, 18, 3, zoom);

            if (scale < 1)
                scale = 1;

            ScaleTransform pushpinsScaleTransform = new ScaleTransform()
            {
                ScaleX = scale,
                ScaleY = scale
            };
            currentPin.RenderTransform = pushpinsScaleTransform;
        }
    }

其中 currentPins 是Map中的IEnumerable。 Interpolate 方法是一个简单的Lienar函数,它应该线性缩放图钉的大小。