2011-01-12 34 views

回答

12

InputScope设置为“搜索”时,“搜索”按钮只是一个重新设置的“回车”按钮。因此,假设:

<TextBox InputScope="Search" KeyDown="SearchBox_KeyDown" /> 

“搜索”被按下按钮(SIP)可以被检测:

private void SearchBox_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.Key == Key.Enter) 
    { 
     // Do search... 
    } 
} 
+0

嗨马特搜索按钮,你能不能帮我,我有相同的场景,我的代码和你在这里回答的完全一样,但是我没有Key.Enter选项? – Bohrend 2013-08-16 06:49:27

+0

@ user2042227你可能错过了包含适当的命名空间(`使用System.Windows.Input;`)。 – 2013-09-03 13:32:46

0

你的意思是硬件搜索按钮?它没有暴露。 Similar question

+1

问题是指在InputScope,而不是硬件按钮 – 2011-01-12 10:31:34

4

除了什么太有(正确)回答,如果你处理收到.PlatformKeyCode == 0x0A(如下图所示),您也可以在没有SIP的模拟器中运行时响应在主机键盘上按下的Enter键。

if ((Key.Enter == e.Key) || (e.PlatformKeyCode == 0x0A)) 
{ 
    // Do search... 
} 
0

对于Windows Phone的8.1应用程序(不Silverlight的),你可以使用VirtualKey

if (e.Key == Windows.System.VirtualKey.Enter) 
{ 
    //Do Something. 
} 
相关问题