Разработка под Microsoft PixelSense #0

в 17:22, , рубрики: .net, microsoft, разработка, метки:

Данной статьей я хочу начать цикл статей о разработке под Microsoft PixelSense. Я не уверен, что цикл получится большой, или что кроме этой статьи я вообще что-либо напишу, но все же с чего-то нужно начинать.
Расскажу общие вещи, которые дадут представление о том, что такое PixelSense, где о нем почитать и как начать писать под него. Обо всем по порядку.
Разработка под Microsoft PixelSense #0

Что такое 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 этого не сделали, иначе быть беде и ничего работать не будет.
Разработка под Microsoft PixelSense #0
Сверху видна надпись, на каком мониторе будет работать тач ввод и слева — само окошко, на котором можно выбрать текущий способ ввода.

Создание первого проекта
Если решимость все еще кипит в кропи – то заходим в VS2010 и создаем новый проект.
Разработка под Microsoft PixelSense #0
Как видно из скриншота – в шаблонах проектов для С# добавился новый пункт «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"/>

и получим как и ожидалось
Разработка под Microsoft PixelSense #0

Далее ведем разработку на WPF, используя все знания об этой технологии.

Все! Статья получилась совсем простой, для легкого старта с минимальным поиском. Далее постараюсь уже рассказывать о каких-то местах в разработке, подробнее о контролах и прочем.

Автор: igofed

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js