2010-08-03 3 views
1

У меня есть пользовательский элемент управления, в котором есть 2 элемента управления A и B. Теперь у A и B есть своя логика в их событии DragDrop.Разрешить родительской обработке дочернего элемента управления событиями или командой WPF?

Родитель, у которого есть эти два элемента управления, должен обрабатывать DragDrop из этих событий по-своему. Таким образом, у меня в родительском объекте что-то вроде parent..DragDropEvent + = new EventHandler() и т. Д.

Теперь я хочу обрабатывать событие DragDrop для обоих элементов управления в родительском объекте, а НЕ разрешать детям обрабатывать его самих себя. С другой стороны, если эти элементы управления используются автономно (не в пределах родительского элемента управления), тогда я хочу, чтобы их собственная логика работала или взяла верх.

Как это достичь? благодаря!

ответ

3

Добавьте логическое свойство, например HandleDragDrop, к вашим дочерним элементам управления и разрешите им обрабатывать только перетаскивание, если это свойство истинно. Сделайте это по умолчанию. Установите его в false в своем родительском элементе управления.

2

Если вы хотите, чтобы дочерние элементы управления отображались, но не были интерактивными в реализации, где у них есть родитель, вы можете установить IsHitTestVisible = "false" на них в xaml, где у них есть родительский элемент, а затем все взаимодействия будут перейдите к родительскому.

Смежные вопросы