2010-03-29 30 views
1

KeyDown事件直到任何用户控件被隐式地单击或设置为焦点时才会响应。我想在页面加载后随时触发关键事件。直到任何用户控件被隐式点击或设置焦点,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

回答

0

除非你把焦点到页面内的控制,你不能得到关键事件,即本质上是有重点的意思。具有焦点的控件是将接收关键事件的控件。

在页面后面的代码中,使用OnNavigatedTo事件并在可以接收焦点的第一个控件上调用Focus方法(即第一个控件是可见的,已启用并具有IsTabStop值true)。

另一种方法可能是将页面IsTabStop设置为true,并在Page本身上调用Focus