Событие KeyUp не запускается с ScrollViewer - PullRequest
0 голосов
/ 24 декабря 2009

Я использую элемент управления TreeViewAdv Syncfusion. Я прикрепляю к нему обработчик событий KeypUp, и он работает как положено. Событие запускается всякий раз, когда я отпускаю ключ. Однако, как только я обертываю его в ScrollViewer, событие не запускается. Мне нужно переместить обработчик события до самого ScrollViewer, чтобы перехватить событие. Я также проверил событие PreviewKeyUp, в ScrollViewer оно запускается и Handled имеет значение false. Но PreviewKeyUp для TreeViewAdv не запускается вообще.

Я пытаюсь заменить ScrollViewer на StackPanel, и все в порядке. Таким образом, кажется, что ScrollViewer останавливает распространение события на его содержимое. Как я могу обработать событие в ScrollViewer?

1 Ответ

0 голосов
/ 11 января 2010

Я мог видеть, что это происходит только тогда, когда вы выбираете элемент с помощью мыши, а затем пытаетесь перехватить события KeyUp и KeyDown. Эти события запускаются правильно, когда вы перемещаетесь по элементам только с клавиатуры, например, с помощью клавиши Tab.

Это известная проблема в элементе управления TreeViewAdv, и Syncfusion это исправило. Они обещали, что исправление будет включено в их следующий релиз Vol1 2010, который намечен на конец января 2009 года.

В качестве обходного пути вы можете использовать этот фрагмент кода для получения уведомления о событии.

Обработчик событий в C #

private void TreeViewItemAdv1_MouseLeftButtonUp (отправитель объекта, MouseButtonEventArgs e) { TreeViewItemAdv item = (отправитель как TreeViewItemAdv); Если (пункт! = Ноль) { item.Focus (); } }

Спасибо

Мадхен

...