Как откривате 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
Не съм го разглеждал, за да видя дали е променен във v4.0. Имаш ли?   -  person Tristan Warner-Smith    schedule 18.10.2010


Отговори (1)


Изглежда, че няма начин да направите това от v3.0.

person Tristan Warner-Smith    schedule 04.09.2010