Vývoj aplikací pro Surface

Aplikace pro Surface jsou postavené na WPF. Vývoj je tedy v podstatě identický, jako při tvorbě WPF aplikací pro běžné PC. Aplikace pro Surface musí navíc Microsoft Surfacesplňovat některá kritéria, aby se potenciál tohoto stolu využil naplno:

  1. Aplikace musí být ovladatelný z různých úhlů - uživatelé sedí kolem stolu.
  2. Aplikace musí být připravená pro více uživatelů.
  3. Aplikace musí podporovat multitouch.

Surface SDK proto obsahuje několik ovládacích prvků, které jsou odvozeny z ovládacích prvků určených pro klasické PC a jsou připraveny pro multitouch. Zjednodušeně řečeno, místo ovládacího prvku Button, použijete ovládací prvek SurfaceButton.

Ovládací prvek, který umožňuje tvorbu 360° aplíkací je ScatterView. Jde v podstatě o kontejner pro ovládací prvky, který umožňuje otáčení pomocí několika prstů, změnu velikosti a posunování. Pěknou vlastností je možnost udělit mu rychlost a nechat tento ovládací prvek klouzat po ploše stolu. Vlastností Deceleration pak můžete nastavit, jak rychle se zastaví. Tím lze například simulovat odpor povrchu. Jednoduchý prohlížeč obrázků:

 <s:SurfaceWindow x:Class="MyFirstSurfaceApplication.SurfaceWindow1"
    xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:s="https://schemas.microsoft.com/surface/2008"
    Title="MyFirstSurfaceApplication"
    Name="MainWindow">
  <s:SurfaceWindow.Resources>
    <ImageBrush x:Key="WindowBackground" Stretch="None" Opacity="0.6" ImageSource="pack://application:,,,/Resources/WindowBackground.jpg"/>
  </s:SurfaceWindow.Resources>
  <Grid Name="MainGrid" Background="{StaticResource WindowBackground}" >
      <s:ScatterView Grid.Row="1" Name="MyPhotos" >
            <s:ScatterView.ItemTemplate>
                <DataTemplate>
                    <Image Source="{Binding}"></Image>
                </DataTemplate>
            </s:ScatterView.ItemTemplate>
        </s:ScatterView>
    </Grid>
</s:SurfaceWindow>

Na následujícím videu se můžete podívat, jak ScatterView a některé ovládací prvky vypadají:

(Video jsem točil z ruky digitální fotoaparátem za 100 USD, tak neočekávejte HD, jako od Petra.)

Jednou z vlastností Surface je rozpoznávání položených předmětů To probíhá pomocí pětice kamer, kdy je každému "dotyku" přiřazeno ID, souřadnice, obrys a směr pohybu. Můžete se pak snažit rozpoznat předmět podle tvaru nebo na předmět nalepit tag, který nese zakódovanou informaci. Tagy jsou v podstatě 2D čárové kódy, které mohou nést informaci o velikosti 1b nebo 128b. Ukázka tagu:

Součástí Surface SDK je simulátor Surface, který podporuje multitouch i na normálním PC. Stáčí připojit více myší a ty se v Surface simulátoru zobrazí jako "prsty". Okno simulátoru:

Simulator

Po mém návratu z PDC se můžete těšit na seminář na téma Surface SDK.

Štěpán