Событие KeyDown не отвечает до тех пор, пока какой-либо пользовательский элемент управления не будет нажат или неявно установлен setFocus? - PullRequest
1 голос
/ 29 марта 2010

Событие KeyDown не отвечает до тех пор, пока какой-либо пользовательский элемент управления не будет нажат или неявно задан. Я хочу, чтобы событие ключа запускалось после загрузки страницы в любое время.

Я пробовал как:

   private void Page_KeyDown(object sender, KeyEventArgs e)
             {
                 if (e.Key.ToString() == "Escape")
                   {
                        string uri = "/Views/Music/ArtistbyAlbum";
                        this.NavigationService.Navigate(new Uri(uri, UriKind.Relative));
                   }
            }

        void LayoutRoot_KeyDown(object sender, KeyEventArgs e)
                {
                    MessageBox.Show("hi");


}

Пожалуйста, помогите.

Спасибо, Subhen

1 Ответ

0 голосов
/ 08 апреля 2010

Если вы не фокусируете внимание на элементе управления на странице, вы не можете получить ключевые события, это, по сути, то, что означает фокус. Элемент управления, имеющий фокус, является элементом управления, который будет получать ключевые события.

В коде на странице используйте событие OnNavigatedTo и вызовите метод Focus в первом элементе управления, который может получить фокус (это первый элемент управления, который виден, включен и имеет IsTabStop значение true). .

Другой подход может состоять в том, чтобы установить для страницы IsTabStop значение true и вызвать Focus на самой странице.

...