如何在Silverlight的BingMaps中更改自定义图钉内元素的大小

时间:2012-01-10 15:03:27

标签: c# silverlight bing-maps

我有一个包含Ellipse的自定义图钉,我想在后面的C#代码中以编程方式更改其大小。我可以更改图钉大小,但这会影响它在地图上的位置。

有没有办法让我直接通过渲染变换或直接改变它的高度和宽度来处理椭圆?

这是xaml:

<map:Pushpin Location="51.4,-0.2" >
    <map:Pushpin.Template>
        <ControlTemplate>
            <Ellipse Width="15" Height="15" Fill="Red" Opacity="0.7" Stroke="Black" StrokeThickness="2.5">
                 <Ellipse.RenderTransform>   
                     <TranslateTransform X="0" Y="18" />
                 </Ellipse.RenderTransform>
             </Ellipse>
         </ControlTemplate>
     </map:Pushpin.Template>
</map:Pushpin>

这是我目前使用的C#,它改变了图钉尺寸(目前为随机数):

private void MapItemsSizeChange()
{
    Random rnd = new Random();
    ScaleTransform pin_st = new ScaleTransform();

    if (mainMap != null)
    {
        foreach (UIElement UI in mainMap.Children)
        {
            if (UI is Pushpin)
            {
                var pin = UI as Pushpin;

                if (pin != null)
                {
                    double x = rnd.Next(5, 20);
                    x = x / 10;

                    pin_st.ScaleX = x;
                    pin_st.ScaleY = x;

                    UI.RenderTransform = pin_st;
                }
            }
        }
    }
}

全部谢谢!