У меня проблемы с чем-то, и мне нужна помощь!
Мой контекст:
Приложение Windows WPF, которое отображает сгенерированные кодом многоугольники на виртуальной земле3D карта.
Моя проблема:
Невозможно превратить сгенерированные полигоны в "интерактивные элементы".
Шаги, предпринятые до сих пор:
Мой первый подход состоял в том, чтобы использовать конвейер присоединения к событиям VE, это не что иное, как «наблюдение» за всеми событиями, инициированными через элемент управления 3D-глобусом, и возвращение списка всего, что существует в месте для щелчка.Хотя это работает, я получаю ужасное смещение при каждом щелчке мыши, что пока делает этот подход бесполезным.
Мой второй подход состоял в том, чтобы прикреплять обработчики щелчков мыши к полигонам.Для этого я создал этот класс:
public class ExtendedPolygon:PolygonGeometry
{
}
, который расширяет исходный объект PolygonGeometry.Затем я следовал совету, помещенному в этот поток , давая классам события click C # для реализации события "слушатели" и обработчики, например так:
public event EventHandler<MouseEventArgs> Click;
protected void OnClick(MouseEventArgs e)
{
EventHandler<MouseEventArgs> handler = Click;
if (handler != null)
{
handler(this, e);
}
}
internal void CheckIfClicked(MouseEventArgs e)
{
OnClick(e);
}
Then (и радиво время тестирования этой простоты) я сделал все события, прикрепленные к коду моего представления за страницей:
polygon.Click +=new EventHandler<MouseEventArgs>(polygon_MouseClick);
void pol_MouseClick(object sender, MouseEventArgs e)
{
ShowBox(" ShapeId:" + "I clicked");
}
Итак, мой код выполняется, многоугольники отображаются, и все же никакие события щелчка не генерируются.Оставив мне следующие вопросы:
-Я делаю это неправильно?Как мне присоединить весь конвейер для захвата и вызова событий мыши из класса (который не наследуется от контроля) в WPF?
- Есть идеи, как это исправить?
Спасибоза чтение и за время, затраченное на это!
PS: Если кто-нибудь знает лучший способ прикрепить события к Полигонам Виртуальной Земли, у меня все уши =)