Silverlight - Добавьте Канцелярскую кнопку к Картам Bing через C#

Я начинаю с управлением Картами Bing Silverlight. Как я добавляю Канцелярскую кнопку к карте программно с C#?

Спасибо!

11
задан Steve Rowe 6 May 2010 в 05:06
поделиться

1 ответ

Неизвестен,

вот пошаговый пост для создания приложения Silverlight, который отображает карту Bing of US и добавляет кнопку на каждом нащелке. И просто для удовольствия я добавил функцию «зависания», когда вы просматриваете нажатия.

Шаг 1 : создать образец приложения Silverlight с Visual Studio (файл / новый проект / приложение для Silverlight)

Шаг 2 : добавьте два ссылки Bing DLL к проекту приложения Silverlight

  : C: \ Файлы программы \ Bing Maps Silverlight Control \ V1 \ Библиотеки \
Файл 1: Microsoft.maps.mapcontrol.dll
Файл 2: Microsoft.maps.mapcontrol.common.dll
 

Шаг 3 : отредактируйте mainpage.xaml и добавьте следующее пространство имен в верхней части:

xmlns:Maps="clr-namespace:Microsoft.Maps.MapControl;assembly=Microsoft.Maps.MapControl"

Шаг 4 : отредактируйте mainpage.xaml, и поместите следующий код внутри сетки userControl:

<Maps:Map x:Name="x_Map" Center="39.36830,-95.27340" ZoomLevel="4" />

​​Шаг 5 : отредактируйте mainpage.cs, и добавьте следующее с использованием оператора:

using Microsoft.Maps.MapControl;

Шаг 6 : отредактируйте mainpage.cs, и замените класс mainpage следующий код:

public partial class MainPage : UserControl
{
    private MapLayer m_PushpinLayer;

    public MainPage()
    {
        InitializeComponent();
        base.Loaded += OnLoaded;
    }

    private void OnLoaded(object sender, RoutedEventArgs e)
    {
        base.Loaded -= OnLoaded;

    m_PushpinLayer = new MapLayer();
    x_Map.Children.Add(m_PushpinLayer);
        x_Map.MouseClick += OnMouseClick;
    }

    private void AddPushpin(double latitude, double longitude)
    {
        Pushpin pushpin = new Pushpin();
        pushpin.MouseEnter += OnMouseEnter;
        pushpin.MouseLeave += OnMouseLeave;
        m_PushpinLayer.AddChild(pushpin, new Location(latitude, longitude), PositionOrigin.BottomCenter);
    }

    private void OnMouseClick(object sender, MapMouseEventArgs e)
    {
        Point clickLocation = e.ViewportPoint;
        Location location = x_Map.ViewportPointToLocation(clickLocation);
        AddPushpin(location.Latitude, location.Longitude);
    }

    private void OnMouseLeave(object sender, MouseEventArgs e)
    {
        Pushpin pushpin = sender as Pushpin;

        // remove the pushpin transform when mouse leaves
        pushpin.RenderTransform = null;
    }

    private void OnMouseEnter(object sender, MouseEventArgs e)
    {
        Pushpin pushpin = sender as Pushpin;

        // scaling will shrink (less than 1) or enlarge (greater than 1) source element
        ScaleTransform st = new ScaleTransform();
        st.ScaleX = 1.4;
        st.ScaleY = 1.4;

        // set center of scaling to center of pushpin
        st.CenterX = (pushpin as FrameworkElement).Height / 2;
        st.CenterY = (pushpin as FrameworkElement).Height / 2;

        pushpin.RenderTransform = st;
    }
}

Шаг 7 : построить и запустить!

Приветствия, Джим МакКурды

лицом к сталкивающемуся программному обеспечению и Yinyangmoney

21
ответ дан 3 December 2019 в 05:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: