Мы создаем приложение, которое использует горячие клавиши, это веб-интерфейс для существующего приложения Windows. Обычно вы можете проверить это
Keyboard.Modifiers == ModifierKeys.Alt
Однако когда вы используете комбинации с Alt, браузер фиксирует нажатие клавиши Alt, чтобы проверить, сможет ли он его обработать.
Единственный способ обойти это, который я видел до сих пор, — это вручную подключиться к событиям нажатия клавиш в DOM следующим образом:
System.Windows.Browser.HtmlPage.Document.Body.AttachEvent("onkeydown", new EventHandler<System.Windows.Browser.HtmlEventArgs>(OnBodyKeyDown));
Затем пусть ваш код проверит сигнал флагом, нажата ли клавиша Alt или нет. Это описано здесь.
KeyEventArgs
запечатан, поэтому вы не можете просто поднять его самостоятельно и не можете напрямую установить модификаторы.
Очевидно, что это не идеальная ситуация, кто-нибудь знает, как это можно сделать лучше?
[Мы работаем с Silverlight 3.0.]