2

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

4

2 回答 2

1

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

于 2013-06-18T20:44:29.970 回答
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 函数,它应该线性缩放图钉的大小。

于 2013-06-26T11:43:53.607 回答