И что?
Это просто компьютер внутри стола?


                     Почти…
                     Но не совсем так
Розничные                            Финансовые
            Развлечения   Автопром                Здравоохранение
 продажи                               услуги
Приложения Surface

WPF API   Core API (XNA)       Shell UI & APIs

 Система отображения         Интеграция с ОС

              Windows Vista SP1

Microsoft Surface – аппаратная часть и драйверы
XAML
 <Window>
 <s:SurfaceWindow>
           Mouse.MouseDown=“OnMouseDown“>
  <Canvas s:Contacts.ContactDown=“OnContactDown“>
   <Button Click=“OnButtonClick”/>
   <s:SurfaceButton Click=“OnButtonClick”/>
  </Canvas>
 </Window>
 </s:SurfaceWindow>

Code
 void OnContactDown(objectsender, ContactEventArgse)
       OnMouseDown(object sender, MouseEventArgs e)
 { // ...
 }
 void OnButtonClick(object sender, RoutedEventArgs e)
 { // ...
 }
SurfaceWindow
  • Всегда в режиме fullscreen
• Расположено к запустившему
   приложение пользователю
         SurfaceMenu
     SurfaceContextMenu
       SurfaceMenuItem
 • Несколько элементов могут
использоваться одновременно
        SurfaceButton
     SurfaceRadioButton
       SurfaceCheckBox
     SurfaceToggleButton
 • Событие “click” возникнет
только тогда, когда все другие
  контакты с поверхностью
         прекратятся
SurfaceListBox
      SurfaceScrollViewer
• Различает прокрутку и выбор
    • Контрол инерциален


          SurfaceSlider
         SurfaceScrollBar
     • Контрол инерциален
• Бегунок едва различим, когда
    контрол не используется


        SurfaceTextBox
      SurfacePasswordBox
   • При нажатии запускает
   виртуальную клавиатуру,
расположенную к пользователю
Постоянно
                                обходить стол
                                   вокруг?
                 Это и правда
                                Неприкольно…
                    просто
                 компьютер?




  Зачем мне
 нужно ждать
своей очереди?


                                                Сколько у нас
                                                  на часах?
                                                   17:44?
Это просто
мегакомпьютер


                                 Ух ты! Прикольная
                                       штука!




                Мы с друзьями
                                                   Ага, я вижу
                не мешаем друг
                                                 сколько сейчас
                     другу
                                                    времени!
Byte Tags
                Contact.Tag.Byte
                256 уникальных значений


                                                                 Byte Tag



Identity Tags
                Contact.Tag.Identity
                >340 282 366 920 938 000 000 000 000 000 000 000 000
                уникальных значений
Multi-Touch
                     Surface
                   Multi-Touch
                    Controls
                   Multi-Touch
                  Controls & API
                  Controls &API




Multi-Touch API
Microsoft NUI - Surface
Microsoft NUI - Surface
Microsoft NUI - Surface
Microsoft NUI - Surface
Microsoft NUI - Surface
Microsoft NUI - Surface
Microsoft NUI - Surface
Microsoft NUI - Surface
Microsoft NUI - Surface
Microsoft NUI - Surface

Microsoft NUI - Surface

  • 4.
    И что? Это простокомпьютер внутри стола? Почти… Но не совсем так
  • 9.
    Розничные Финансовые Развлечения Автопром Здравоохранение продажи услуги
  • 12.
    Приложения Surface WPF API Core API (XNA) Shell UI & APIs Система отображения Интеграция с ОС Windows Vista SP1 Microsoft Surface – аппаратная часть и драйверы
  • 15.
    XAML <Window> <s:SurfaceWindow> Mouse.MouseDown=“OnMouseDown“> <Canvas s:Contacts.ContactDown=“OnContactDown“> <Button Click=“OnButtonClick”/> <s:SurfaceButton Click=“OnButtonClick”/> </Canvas> </Window> </s:SurfaceWindow> Code void OnContactDown(objectsender, ContactEventArgse) OnMouseDown(object sender, MouseEventArgs e) { // ... } void OnButtonClick(object sender, RoutedEventArgs e) { // ... }
  • 16.
    SurfaceWindow •Всегда в режиме fullscreen • Расположено к запустившему приложение пользователю SurfaceMenu SurfaceContextMenu SurfaceMenuItem • Несколько элементов могут использоваться одновременно SurfaceButton SurfaceRadioButton SurfaceCheckBox SurfaceToggleButton • Событие “click” возникнет только тогда, когда все другие контакты с поверхностью прекратятся
  • 17.
    SurfaceListBox SurfaceScrollViewer • Различает прокрутку и выбор • Контрол инерциален SurfaceSlider SurfaceScrollBar • Контрол инерциален • Бегунок едва различим, когда контрол не используется SurfaceTextBox SurfacePasswordBox • При нажатии запускает виртуальную клавиатуру, расположенную к пользователю
  • 19.
    Постоянно обходить стол вокруг? Это и правда Неприкольно… просто компьютер? Зачем мне нужно ждать своей очереди? Сколько у нас на часах? 17:44?
  • 21.
    Это просто мегакомпьютер Ух ты! Прикольная штука! Мы с друзьями Ага, я вижу не мешаем друг сколько сейчас другу времени!
  • 22.
    Byte Tags Contact.Tag.Byte 256 уникальных значений Byte Tag Identity Tags Contact.Tag.Identity >340 282 366 920 938 000 000 000 000 000 000 000 000 уникальных значений
  • 24.
    Multi-Touch Surface Multi-Touch Controls Multi-Touch Controls & API Controls &API Multi-Touch API

Editor's Notes

  • #4 Microsoft Surface – совокупность аппаратных и программных средств, объединенных в единый продукт, который позволяет пользователю или группе пользователей управлять цифровым содержимым, используя жесты, движения, прикосновения пальцев или физических объектов.
  • #13 Светлое настоящее
  • #19 Переделать какое-нибудь простое WPF-приложение и запустить его на эмуляторе Microsoft Surface. Желательно чтобы мышиных обработчиков там не присутствовало, а то будет долго Для этого надо сделать 3 действия:Убрать размеры окна (атрибуты Width и Height в корневом теге Window и добавить атрибут WindowStyleсо значением “None”)Добавить в проект ссылку на сбору Microsoft.Surface.Presentationи и соответствующее описание неймспейса (xmlns:s=“http://schemas.microsoft.com/surface/2008”) в тэг Window в xaml-файле, описывающем главное окно приложения.Заменить описание всех стандартных контролов в xaml-файле на описание контролов из соответствующего неймспейса (Quick Replace -&gt; заменить с помощью регулярного выражения «{[&lt;/]}{(Window|Button|ScrollViewer|ListBox)[&gt; ]}» на «\\1s:Surface\\2»)
  • #21 Очень круто, если слайд приводит в пример то приложение, которое только что переделывалось с Windows WPF на Surface WPF
  • #23 Демонстрация переделанного примера приложения из прошлой демонстрации
  • #24 Очень круто, если слайд приводит в пример то приложение, которое только что переделывалось с Windows WPF на Surface WPF
  • #25 Друзья! Обязательно отдайте какой-нибудь сувенир тому, что сможет правильно назвать число уникальныхIdentity Tags!340 ундециллионов 282 додециллиона 366 нониллиона 920 октиллионов 938 септиллионов 