Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
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(); } работает но очень глючит !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2008, 11:43 |
|
||
|
|

start [/forum/topic.php?fid=21&fpage=72&tid=1443100]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
| others: | 210ms |
| total: | 328ms |

| 0 / 0 |
