Silverlight 4, с картами Bing, размер эллипса - PullRequest
1 голос
/ 27 января 2012

У меня проблема с отображением больших эллипсов в MapLayer.Эллипс обрезан.

В XAML я просто добавляю карту со слоем и эллипсом.В коде позади я нахожу эллипс на карте.Проблема появляется, когда я перемещаю карту на север.

    <UserControl x:Class="PruebaEllipse.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:m="clr-namespace:Microsoft.Maps.MapControl;assembly=Microsoft.Maps.MapControl"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">
    <Grid x:Name="LayoutRoot" Background="White">
        <m:Map x:Name="Mapa"  CredentialsProvider="AlT1xaWmg1CctI7..." Mode="Road" Grid.Column="0" Grid.Row="1" ZoomLevel="10" Center="-33,-54" >
            <m:MapLayer x:Name="NewPolygonLayer">
            </m:MapLayer>
            <m:MapLayer x:Name="Layer1" Loaded="Layer1_Loaded" >
                <m:MapLayer.Children>
                    <Ellipse Height="1500" HorizontalAlignment="Left" Name="ellipse1" Stroke="Black" StrokeThickness="1" VerticalAlignment="Top" Width="900" Fill="#FF895D5D" />
                </m:MapLayer.Children>
            </m:MapLayer>
        </m:Map>
    </Grid>
</UserControl>

Это код позади:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

using Microsoft.Maps.MapControl;

namespace PruebaEllipse
{
    public partial class MainPage : UserControl
    {
        public MainPage()
        {
            InitializeComponent();
        }

        private void Layer1_Loaded(object sender, RoutedEventArgs e)
        {
            Location trkLoc2 = new Location(-32.5, -54.0);
            MapLayer.SetPosition(ellipse1, trkLoc2);
        }
    }
}

1 Ответ

0 голосов
/ 18 сентября 2014

Это ограничение Silverlight.Если вы создадите какой-либо элемент управления, размер которого больше размера окна просмотра, он будет обрезан.Если вы хотите нарисовать круг на Bing Maps, вы можете использовать класс MapPolyon и рассчитать набор точек, которые составляют круг.Это даст вам круг, который масштабируется при масштабировании карты и не обрезается окном области просмотра.Вот сообщение в блоге о том, как это сделать: http://silverlightfoundry.blogspot.co.uk/2009/06/bing-live-maps-silverlight-control-part.html

...