У меня есть приложение WPF с картой Bing , и я застрял в одном моменте. Щелчок левой кнопкой мыши создает канцелярскую кнопку. И если вы захотите изменить прокрутку карты колесиком мыши, пока курсор находится на вставленной канцелярской кнопке, ничего не произойдет. Я понимаю, что у моих элементов на карте нет вызывающих событий. Но если с событием MouseUp , я переопределил свой метод (function: myMap_MouseMove , str: pin.MouseUp + = Pin_MouseUp ;)
Код (XAML):
<m:Map x:Name="myMap" ZoomLevel="15" Mode="AerialWithLabels" MouseMove="myMap_MouseMove" MouseUp="myMap_MouseUp" />
Код (C#):
private void myMap_MouseUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
if (isDragging)
{
isDragging = false;
return;
}
switch (e.ChangedButton)
{
case System.Windows.Input.MouseButton.Left:
myMap_MouseLeftButtonDown(sender, e);
break;
case System.Windows.Input.MouseButton.Right:
myMap_MouseRightButtonDown(sender, e);
break;
default:
break;
}
}
private void myMap_MouseMove(object sender, System.Windows.Input.MouseEventArgs e)
{
...
foreach (var viewportPoint in drawPolyPoints)
{
// Convert the mouse coordinates to a location on the map
ControlTemplate template = (ControlTemplate)this.FindResource("CutomPushpinTemplate");
Pushpin pin = new Pushpin();
pin.Location = viewportPoint;
//pin.Template = template;
pin.Style = (Style)this.FindResource("LabelPushpinStyle");
pin.MouseUp += Pin_MouseUp; // It's OK
pin.MouseWheel += myMap.MouseWheel; // problem
myMap.Children.Add(pin);
}
double area = CalculateArea(_polyLocations);
this.Fields.Text = "Area: " + area;
}
private void myMap_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
...
e.Handled = true;
Point mousePosition = e.GetPosition(myMap);
Location pinLocation = myMap.ViewportPointToLocation(mousePosition);
ControlTemplate template = (ControlTemplate)this.FindResource("CutomPushpinTemplate");
// The pushpin to add to the map.
Pushpin pin = new Pushpin();
pin.Location = pinLocation;
pin.Style = (Style)this.FindResource("LabelPushpinStyle");
// Adds the pushpin to the map
myMap.Children.Add(pin);
drawPolyPoints.Add(pin.Location);
...
}
У меня проблемы с событием MouseWheel .
Как Я могу вызвать событие Map MouseWheel из дочернего элемента (PushPin или другого) ??