2013-05-20 3 views
0

У меня есть элемент управления Expander, который показывает список элементов при его расширении. Если я нахожу курсор мыши над заголовком, он расширит его.WPF Expander MouseOver Issue

Мне нужны следующие вещи, которые необходимо реализовать из кода позади или в xaml.

1) если пользователь наводит указатель мыши на заголовок расширителя и нажимает клавишу ввода, то по умолчанию должен быть выбран первый элемент из списка.

2) если пользователь наводит указатель мыши на один из элементов списка и нажимает клавишу ввода, мы должны выбрать элемент в виде перкулята. - Я уже это реализовал.

Мой вопрос: я могу захватить ключевое событие ввода в коде позади, но как я узнаю, что пользователь навел указатель мыши на заголовок или элемент расширителя, так как мне нужно сделать две вещи diff.

Благодаря

Ди

ответ

0

Вы можете использовать Mouse.DirectlyOver, чтобы получить элемент это закончится, то вы можете идти вверх по дереву, чтобы увидеть, если вы находитесь в соответствующей области видимости (т.е. найти разворачивание/заголовок), или вы можете проверить IsMouseOver соответствующих элементов управления, а также вернуть true, если мышь находится над дочерним элементом.

+0

На moue over Я могу получить управление расширителем, но я не знаю, как узнать, что это область заголовка exapnder или ares предмета? – user2203652

+0

@ user2203652: не используйте мышь, а ключевые события; имя или тег элемента управления в заголовке, то либо идите по дереву, пока не найдете тегированный элемент управления, либо не проверите 'control.IsMouseOver',' control' - имя. –