2012-01-27 2 views
1

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

В 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); 
     } 
    } 
} 
+0

Вы поняли это? :) –

ответ

0

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

Смежные вопросы