|
WPF пользовательский канвас: проблема с обработкой событий
|
|||
---|---|---|---|
#18+
Всем привет! Стоит задача создания инструмента для рисования графа. Вершины можно подписывать и двигать. Должна быть возможность выбирать дуги и привязывать к ним уравнения, задающие взаимодействия между вершинами графа. Соответственно, я делаю класс вершин и класс дуг. Написала класс вершин MyCanvas, наследуемый от System.Windows.Controls.Panel (пробовала наследовать от Canvas - эффект тот же). Экземпляр такого класса представляет собой канвас, на котором есть эллипс и текстбокс. Такие объекты помещаются на большой канвас. Там нужно перемещать их и связывать линиями. Все здорово, но есть большая проблема. Объектом, отсылающим событие обработчику (например, событие щелчка мыши по эллипсу), может быть только сам маленький канвас определенного мной класса MyCanvas, но никак не сам экземпляр MyCanvas. Из-за этого я не могу в таком обработчике менять другие поля объекта MyCanvas, на эллипс которого нажали. А это мне очень нужно. Думаю, что возникнет аналогичная проблема при попытке привязать обработчик события к клику по дуге (объект класса, наследуемого от Shape). Буду очень благодарна, если кто-нибудь поможет решить проблему. Может быть, нужно как-то переопределять сами события, чтобы их sender'ом мог быть объект моего класса MyCanvas? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2012, 20:03 |
|
WPF пользовательский канвас: проблема с обработкой событий
|
|||
---|---|---|---|
#18+
Очевидно, что при щелчке на мой пользовательский объект событие обрабатывается так, будто я просто щелкнула по большому канвасу, на котором я создавала этот объект. Нужно как-то сделать так, чтобы мой пользовательский объект мог сам заметить и обработать событие клика по нему. Тут, наверное, что-то связано с маршрутизацией, но я в ней совсем не разбираюсь. Помогите, пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2012, 01:07 |
|
WPF пользовательский канвас: проблема с обработкой событий
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2012, 11:15 |
|
|
start [/forum/topic.php?fid=21&msg=37745899&tid=1441854]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 129ms |
0 / 0 |