如何确定Caps Lock是否在Silverlight应用程序中切换?

Rog*_*gan 5 silverlight user32 dllimport

在Silverlight应用程序的登录屏幕中,我需要确定是否切换Caps Lock.通过处理KeyUp或KeyDown事件,这很容易,但是,即使没有按下某个键,如何确定它是打开还是关闭?

我想要这样做的原因是,如果用户在Silverlight应用程序运行时没有按Caps Lock,而是在他们进入登录屏幕之前切换它?我还需要警告他们已经开启了大写锁定.

显然,在Silverlight中无法处理非托管代码,因此以下操作无效.

[DllImport("user32.dll")]内部静态extern short GetKeyState(int keyCode);

Sha*_*men 3

检测CAPS LOCKS的方法是检查KeyValue和KeyEventArgs的Shift。
如果 KeyValue 为(例如)“A”但 Shift 为 false,则大写锁定打开。
这不是最好的方法,但它是ajax 应用程序的做法