Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Особенности фокуса / 2 сообщений из 2, страница 1 из 1
07.04.2011, 13:16
    #37204475
enigmatic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Особенности фокуса
Здравствуйте.
Проблема следующая: есть класс унаследованный от ChildWindow, который обрабатывает нажатия клавиатуры. Например, по нажатию на Enter он закрывается с DialogResult равным True, и по нажатию на Escape с DialogResult равным False.
Если вызывать этот ChildWindow сразу по загрузке формы, то он нажатия клавиатуры не обрабатывает, пока вручную не кликнешь по нему. Если же он вызывается, например, по клику на кнопку, то фокус он имеет сразу же.

Это проблема связана, как я понимаю, не конкретно с ChildWindow и кнопкой, а с фокусом вообще.
Что-то вроде защиты от нежелательных программных нажатий на кнопки.

Почему так?
Как с этим бороться и надо ли?
Связано ли это с фокусом или с чем-то еще?
Если это известная проблема, есть ли у нее какое-то специфическое название?

Пример с ChildWindow прилагаю. Это дефолтный ChildWindow, генерируемый студией, но который реагирует на enter и escape. Сначала он вызывается при подгрузке главной страницы и фокуса не имеет и на нажатия не реагирует. Затем можно вызвать его же снова по нажатию на кнопку и он будет иметь фокус на Cancel и будет обрабатывать нажатия клавиатуры.
...
Рейтинг: 0 / 0
08.04.2011, 06:49
    #37205890
enigmatic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Особенности фокуса
enigmatic,

авторПочему так?
Как с этим бороться и надо ли?
Связано ли это с фокусом или с чем-то еще?
Если это известная проблема, есть ли у нее какое-то специфическое название?
Потому что приложение не имеет фокуса при загрузке.
Надо. Устанавливать фокус вручную при загрузке.
Связано с отсутствием фокуса при загрузке приложения.
Гугл предлагает искать "silverlight focus on load".

Решение:
Код: plaintext
1.
2.
3.
4.
        void LoginScreen_Loaded(object sender, RoutedEventArgs e)
        {
            HtmlPage.Plugin.Focus(); 
        }

Почему приложение не имеет фокуса изначально - непонятно.
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Особенности фокуса / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]