Данной статьей я хочу начать цикл статей о разработке под Microsoft PixelSense. Я не уверен, что цикл получится большой, или что кроме этой статьи я вообще что-либо напишу, но все же с чего-то нужно начинать.
Расскажу общие вещи, которые дадут представление о том, что такое PixelSense, где о нем почитать и как начать писать под него. Обо всем по порядку.
Что такое PixelSense
PixelSense – это 42 дюймовый сенсорный стол от компании Microsoft, который распознает 42 точки прикосновения, а также во второй версии 256 специальных меток, которые позволяют осуществлять сценарии дополненной реальности. За распознавание касаний и меток отвечает специальная инфракрасная камера. От внешний воздействий экран защищен стеклом Gorilla Glass.
Внутри у стола процессор AMD и видеокарта того же производителя, работает все под управлением Embedded Windows 7 Professional 64-bit.
Писать под стол можно используя 2 технологии: XNA и WPF. Среда разработки Visual Studio 2010.
Изначально проект назывался Surface, поэтому во многих местах будет встречаться именно это название.
Ресурсы о разработке и не только
Все ссылки на основные ресурсы о столе можно найти на www.pixelsense.com. Для нас как для разработчиков самой важной ссылкой является msdn.microsoft.com/en-US/windows/desktop/hh241326.aspx — это девелоперская страница PixelSense, где можно найти все, что нужно о разработке: ссылки на SDK, Hands on labs и вообще это центр всего мира =).
SDK
SDK PixelSense включает в себя рантайм, шаблоны проектов для VS2010, примеры приложений, а также, пожалуй, самое главное – InputSimulator, который позволяет писать под PixelSense на компьютере без сенсорного экрана (есть одно но – симулятор не работает через RDP сессию).
Где что лежит:
• InputSimulator – в пуске Microsoft Surface 2.0 SDK->Tools->InputSimulator
• Примеры — Microsoft Surface 2.0 SDK->Surface Samples
Стандартный набор контролов
Посмотрев на картинку стола, как будто пришедшего из будущего, и почитав, что разрабатывать под него можно даже без самого стола и даже без сенсорного экрана – ты, конечно же, уже поставил на свою винду SDK и пытаешься понять, а что уже написали для тебя разработчики? Лучший ответ на этот вопрос дает одно из приложений примеров, распространяющихся вместе с SDK.
Согласно инструкций примеры вначале нужно собрать, для этого запустив скрипт InstallSamples.bat с правами админа, который все сделает хорошо. После того как все собралось запускам скомпилиный проект WPF/ControlsBox. В этом проекте есть все контролы, на них можно посмотреть, потрогать и поиграться с ними с помощью симулятора.
Как пользоваться симулятором
Симулятор очень простой и нам для начальной разработки понадобится всего пара кнопок. Важно перед началом его использования перезагрузить компьютер, если после установки SDK этого не сделали, иначе быть беде и ничего работать не будет.
Сверху видна надпись, на каком мониторе будет работать тач ввод и слева — само окошко, на котором можно выбрать текущий способ ввода.
Создание первого проекта
Если решимость все еще кипит в кропи – то заходим в VS2010 и создаем новый проект.
Как видно из скриншота – в шаблонах проектов для С# добавился новый пункт «Surface», где можно найти и сам шаблон “Surface Application (WPF)”. Создаем!
И видим XAML код первого окна
<s:SurfaceWindow x:Class="HabrPixelSenseTestApp.SurfaceWindow1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:s="http://schemas.microsoft.com/surface/2008"
Title="HabrPixelSenseTestApp"
>
<Grid>
</Grid>
</s:SurfaceWindow>
Основные отличия от простого WPF окна — окно теперь называется SurfaceWindow и добавилось новое пространство с префиксом s, в котором и находятся все PixelSense контролы.
Для небольшой демонстрации добавим кнопку
<s:SurfaceButton HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
HorizontalContentAlignment="Center" VerticalContentAlignment="Center"
TextBlock.FontSize="50"
Margin="50"
Content="HabraButton"/>
и получим как и ожидалось
Далее ведем разработку на WPF, используя все знания об этой технологии.
Все! Статья получилась совсем простой, для легкого старта с минимальным поиском. Далее постараюсь уже рассказывать о каких-то местах в разработке, подробнее о контролах и прочем.
Автор: igofed