Как сделать, чтобы канцелярская кнопка перетаскивалась по карте в bingmap wpf - PullRequest
3 голосов
/ 28 марта 2012

Я работаю над bingmap wpf. Я создал кнопки на событие щелчка мыши. Теперь мне нужно сделать его перетаскиваемым и отследить координаты в соответствии с расположением кнопки. Кто-нибудь знает, как сделать канцелярскую кнопку перетаскиваемой и в какой функции нам нужно написать код для обновления, когда он будет выпущен.

Большое спасибо заранее

1 Ответ

6 голосов
/ 31 января 2013
Vector _mouseToMarker;
private bool _dragPin;
public Pushpin SelectedPushpin { get; set; }

void pin_MouseDown(object sender, MouseButtonEventArgs e)
{
  e.Handled = true;
  SelectedPushpin = sender as Pushpin;
  _dragPin = true;
  _mouseToMarker = Point.Subtract(
    map.LocationToViewportPoint(SelectedPushpin.Location), 
    e.GetPosition(map));
}

private void map_MouseMove(object sender, MouseEventArgs e)
{
  if (e.LeftButton == MouseButtonState.Pressed)
  {
    if (_dragPin && SelectedPushpin != null)
    {
      SelectedPushpin.Location = map.ViewportPointToLocation(
        Point.Add(e.GetPosition(map), _mouseToMarker));
      e.Handled = true;
    }
  }
}
...