Привет Хабр! Хочу поделится некоторыми особенностями разработки программ/игр для платформы WinRT и публикацией их в Магазине Windows.

Началось все с того, что я с однокурсником решили поучаствовать в Хакатоне который проходил в Армении. Платформа WinRT была выбранна потому, что в ней было мало конкуренции и эта платформа была для нас неизученной. И мы сразу же направились на MSDN и начали работу. На MSDN все довольно хорошо описанно, но все таки есть нюансы, не зная которых новичку на данной платформе придется поломать голову. Я попробую прояснить 2 из них.
Вот тут все очень подробно расписанно, но все что там написанно у нас не заработало или заработало, но не так как надо.
Во первых они придлогают присоединить обработчик для события KeyUp к элементу Grid.
Это вообще не работает! Почему?
В начале этой инструкции написанно:
Но элемент Grid не имеет свойства IsTabStop. Поэтому и не работает.
Был вариант прикрутить обработчик для событий клавиатуры к элементу Page, но тут загвоздка в том, что фокус должен быть на этом элементе. Т.е. если вы кликните где нибудь мышкой то фокус с элемента Page уйдет, а из этого следует что функция работы с клавиатурой никогда не будет вызвана.
Я предлогаю использовать объект окна.
Тут скорее всего совет. Не забудьте перед построением переключится в Release режим. Если вы построите программы в Debug режиме, ее не примут в Магазин.

С чего все началось?
Началось все с того, что я с однокурсником решили поучаствовать в Хакатоне который проходил в Армении. Платформа WinRT была выбранна потому, что в ней было мало конкуренции и эта платформа была для нас неизученной. И мы сразу же направились на MSDN и начали работу. На MSDN все довольно хорошо описанно, но все таки есть нюансы, не зная которых новичку на данной платформе придется поломать голову. Я попробую прояснить 2 из них.
1. Работа с клавиатурой
.Вот тут все очень подробно расписанно, но все что там написанно у нас не заработало или заработало, но не так как надо.
Во первых они придлогают присоединить обработчик для события KeyUp к элементу Grid.
...
Это вообще не работает! Почему?
В начале этой инструкции написанно:
Для того чтобы элемент управления получил фокус, он должен быть включенным, видимым, а его свойства IsTabStop и HitTestVisible должны иметь значение true.
Но элемент Grid не имеет свойства IsTabStop. Поэтому и не работает.
Был вариант прикрутить обработчик для событий клавиатуры к элементу Page, но тут загвоздка в том, что фокус должен быть на этом элементе. Т.е. если вы кликните где нибудь мышкой то фокус с элемента Page уйдет, а из этого следует что функция работы с клавиатурой никогда не будет вызвана.
Я предлогаю использовать объект окна.
Window.Current.CoreWindow.KeyDown += KeyDown_Func;
2. Публикация
Тут скорее всего совет. Не забудьте перед построением переключится в Release режим. Если вы построите программы в Debug режиме, ее не примут в Магазин.