我正在尝试制作网络摄像头程序,我想通过按空格键来启动网络摄像头,所以我尝试了以下代码:
private void mainWindow_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Space)
webcam.Start(0);
}
使用System.Windows.Input将显示此错误:
Error 2 'System.Windows.Input.KeyEventArgs' does not contain a definition for 'KeyCode' and no extension method 'KeyCode' accepting a first argument of type 'System.Windows.Input.KeyEventArgs' could be found (are you missing a using directive or an assembly reference?) C:\Users\User\Desktop\WebCam\Window1.xaml.cs 44 19 WebCam
当我使用System.Windows.Forms时,它会显示:
Error 1 No overload for 'mainWindow_PreviewKeyDown' matches delegate 'System.Windows.Input.KeyEventHandler' C:\Users\User\Desktop\WebCam\Window1.xaml 4 47 WebCam
我如何通过这个? 我也使用Visual Studios 2012 Express。
答案 0 :(得分:0)
尝试覆盖OnPreviewKeyDown,如下所示:
protected override void OnPreviewKeyDown(KeyEventArgs e)
{
base.OnPreviewKeyDown(e);
if (e.Key == Key.Space)
{
MessageBox.Show("Space key down");
}
}
答案 1 :(得分:0)
您可以覆盖ProcessCmdKey
,如下所示:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Space)
{
webcam.Start(0);
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}