Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
05.03.2008, 11:43
|
|||
|---|---|---|---|
WPF ListBox |
|||
|
#18+
Я уже замучился подскажите как правильно переключать фокус ? У меня есть три лисбокса. Мне нужно по нажатию кнопки "Key.A" перейти в листбокс который находится левее. По нажатию "Key.D" который правее. По нажатию "Key.S" спускатся по списку листбокса в низ. По нажатию "Key.W" подниматься в по списку вверх. Я делаю так MenuPlayer - это List<ListBox> MenuPlayer = new List<ListBox>(); private void Ganr_GotFocus(object sender, RoutedEventArgs e) { focusIndex = 0; } private void Ispolnitel_GotFocus(object sender, RoutedEventArgs e) { focusIndex = 1; } private void listPlay_GotFocus(object sender, RoutedEventArgs e) { focusIndex = 2; } if (e.Key == leftkey) { if (focusIndex > 0) { ItemsIndexSelected[focusIndex] = MenuPlayer[focusIndex].SelectedIndex; MenuPlayer[focusIndex].SelectedIndex = -1; MenuPlayer[focusIndex].ScrollIntoView(MenuPlayer[focusIndex].Items[0]); MyTextBlock[focusIndex].Foreground = Brushes.Black; focusIndex--; MenuPlayer[focusIndex].SelectedIndex = ItemsIndexSelected[focusIndex]; MyTextBlock[focusIndex].Foreground = Brushes.Red; } } else { if (e.Key == rightkey) { if (focusIndex < 2) { ItemsIndexSelected[focusIndex] = MenuPlayer[focusIndex].SelectedIndex; MyTextBlock[focusIndex].Foreground = Brushes.Black; focusIndex++; if (MenuPlayer[focusIndex].Items.Count > 0) { MenuPlayer[focusIndex].Focus(); MenuPlayer[focusIndex].SelectedIndex = 0; MenuPlayer[focusIndex].ScrollIntoView(MenuPlayer[focusIndex].Items[MenuPlayer[focusIndex].SelectedIndex]); } else { focusIndex--; } MyTextBlock[focusIndex].Foreground = Brushes.Red; } } if (e.Key == upkey) { if (MenuPlayer[focusIndex].SelectedIndex > 0) MenuPlayer[focusIndex].SelectedIndex--; } if (e.Key == downkey) { if (MenuPlayer[focusIndex].SelectedIndex < MenuPlayer[focusIndex].Items.Count - 1) MenuPlayer[focusIndex].SelectedIndex++; } MenuPlayer[focusIndex].Focus(); MenuPlayer[focusIndex].SelectedValue = MenuPlayer[focusIndex].Items[MenuPlayer[focusIndex].SelectedIndex]; MenuPlayer[focusIndex].ScrollIntoView(MenuPlayer[focusIndex].Items[MenuPlayer[focusIndex].SelectedIndex]); MenuPlayer[focusIndex].InvalidateVisual(); } работает но очень глючит !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=21&mobile=1&tid=1443100]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 10ms |
| total: | 106ms |

| 0 / 0 |
