2

私は bing マップで WinRT を使用しており、マップをズームするときに画鋲の RenderTransform 値を (プログラムで) 設定しようとしています。このソリューションを試しましたが、Windows 8 コントロールは ZoomLevel プロパティへのバインドをサポートしていないようです。誰かが回避策または実際の例を持っていますか? 前もって感謝します

4

2 に答える 2

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は、マップ内にある IEnumerable ですInterpolateメソッドは、画鋲のサイズを線形にスケーリングする単純な Lienar 関数です。

于 2013-06-26T11:43:53.607 に答える