Как вы обнаруживаете комбинации ALT в Silverlight?

Мы создаем приложение, которое использует горячие клавиши, это веб-интерфейс для существующего приложения 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.]


person Tristan Warner-Smith    schedule 30.07.2009    source источник
comment
Привет, TreeUK. Я только что проверил это с Silverlight 3.0 на событии MouseLeftButtonUp, и Silverlight действительно обнаруживает клавишу alt. Не могли бы вы опубликовать код, который показывает проблему?   -  person Ray Booysen    schedule 31.07.2009
comment
Да, мой вопрос касается комбинаций клавиш с использованием Alt, а не клавиатуры + мыши.   -  person Tristan Warner-Smith    schedule 31.07.2009
comment
Я искал вокруг и думаю, что действительно нет лучшего способа. В Silverlight также нет PreviewKeyDown.   -  person RandomEngy    schedule 29.09.2009
comment
Я не изучал его, чтобы увидеть, изменилось ли оно в версии 4.0. У вас есть?   -  person Tristan Warner-Smith    schedule 18.10.2010


Ответы (1)


Кажется, нет способа сделать это с версии 3.0.

person Tristan Warner-Smith    schedule 04.09.2010