在我的 Silverlight TextBox 控件的 KeyDown 事件中,F7 键未被识别,我无法弄清楚原因。
代码在这里:
private void txtDraw_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.F7)
{
Debug.WriteLine("F7");
drawRect();
}
else if (e.Key == Key.F8)
{
Debug.WriteLine("F8");
draw2Rects();
}
else if (e.Key == Key.F9)
{
Debug.WriteLine("F9");
draw3Rects();
}
}
private void draw3Rects()
{
}
private void draw2Rects()
{
}
private void drawRect()
{
Rectangle rect = new Rectangle();
rect.Fill = new SolidColorBrush(red);
Grid.SetColumn(rect, 1);
Grid.SetRow(rect, 0);
}
我知道按下 F7 键并没有做任何事情,因为我已经尝试在该行进行调试,并且尝试执行 Debug.WriteLine()。只有按下 F8 键和 F9 键时才会出现 Debug.WriteLine() 方法。 F7 不起作用。
在 Internet Explorer 32 位中,F7 键是为特定功能保留的(我认为是插入符号浏览)。我还没有找到如何改变它,我可能无法改变它。
我可以推测的一件事是,当按下 F7 键时,Internet Explorer 可能会窃取 KeyDown 事件。我不知道这两个进程是如何隔离的。
为什么无法识别 F7 键的任何想法?
谢谢
最佳答案
关于某些组合键未公开的更广泛问题,存在一个开放连接问题,因为浏览器首先接收它们。
https://connect.microsoft.com/VisualStudio/feedback/details/525760/silverlight-in-ie8-ctrl-p-and-some-other-ctrl-shortcuts-cannot-catched
目前连接项目有 7 票,SL 项目经理回应说这是设计使然 - 所以看起来没有希望。
关于c# - 在 KeyDown 事件中无法识别 F7 键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6850794/