Silverlight, пользовательский объект для фигур

Я изучаю Silverlight. У меня есть приложение, в котором я создаю полигоны методом UserControl_Loaded. На этапе создания я добавляю обработчик события MouseLeftButtonUp следующим образом:

polygon.MouseLeftButtonUp += MouseButtonEventHandler_MouseLeftButtonUp;

Все полигоны имеют один и тот же обработчик.

Моя цель - использовать пользовательский объект, когда я нажимаю на многоугольник.

Например, у меня есть два полигона; оба они имеют свойство int MyCustomInt32. Свойство задается на этапе создания. Для первого полигона установлено значение 10, для второго — 20. Когда срабатывает событие, я хотел бы получить и установить значение MyCustomInt32. Конечно, значение должно быть другим, это зависит от того, по какому полигону я нажимаю.

Возможно ли это сделать в Silverlight?

Спасибо.


person Antipod    schedule 01.10.2009    source источник
comment
Возможно, вы захотите потратить несколько минут, чтобы просмотреть свои предыдущие вопросы, есть ли такие, на которые вы можете принять ответ?   -  person AnthonyWJones    schedule 01.10.2009


Ответы (1)


Вы можете привести параметр отправителя к вашему пользовательскому типу класса: -

private void MouseButtonEventHandler_MouseLeftButtonUp(object sender,  MouseButtonEventArgs e)
{
    var polygon = (MyCustomPolygon)sender;
    int x = polygon.MyCustomInt32;
}

Изменить:

В ответ на ваш комментарий тема фактического создания реализации пользовательского элемента управления слишком широка. Тем не менее, в Интернете есть много статей для обзора. Несколько примеров: -

С помощью простого веб-поиска «Custom Control Silverlight» можно найти гораздо больше.

person AnthonyWJones    schedule 01.10.2009
comment
Спасибо за ответ. Не могли бы вы предоставить фрагмент кода, как реализовать MyCustomPolygon в своем ответе? Можно ли создать новый класс и унаследовать его от класса Polygon? - person Antipod; 01.10.2009
comment
Вы не можете наследовать от Polygon, он запечатан. Вы можете создать пользовательский элемент управления, который содержит полигон. - person AnthonyWJones; 01.10.2009