Listing 1: ndern der Application LiveTile

ShellTile liveTile = ShellTile.ActiveTiles.First();
            
StandardTileData liveTileData = new StandardTileData
{
  Title = "Der App-Title",
  BackgroundImage = new Uri("green.jpg", UriKind.Relative),
  BackTitle = "Rckseite",
  BackBackgroundImage = new Uri("blue.jpg", UriKind.Relative),
  BackContent = "Die Kacheln kann sehr viel Text darstellen"
};

liveTile.Update(liveTileData);

Listing 2: Erstellen einer zweiten Kachel fr eine App

ShellTile secondaryTile = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("DefaultTitle=FromTile"));

if (TileToFind == null)
{
    StandardTileData secondaryTileData = new StandardTileData
    {
        BackgroundImage = new Uri("Red.jpg", UriKind.Relative),
        Title = "Secondary Tile",
        Count = 12,
        BackTitle = "Rckseite der Kachel",
        BackContent = "Willkommen auf der Rckseite der Kachel",
        BackBackgroundImage = new Uri("Blue.jpg", UriKind.Relative)
    };

    ShellTile.Create(new Uri("/SecondaryTile.xaml?DefaultTitle=FromTile", UriKind.Relative), secondaryTileData);
}

Listing 3: Ein Pivot Control mit Datenbindung

<controls:Pivot Title="MY APPLICATION">
  <!--Pivot item one-->
  <controls:PivotItem Header="first">
    <!--Double line list with text wrapping-->
    <ListBox x:Name="FirstListBox" Margin="0,0,-12,0" ItemsSource="{Binding Items}">
      <ListBox.ItemTemplate>
        <DataTemplate>
          <StackPanel Margin="0,0,0,17" Width="432" Height="78">
            <TextBlock Text="{Binding LineOne}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
            <TextBlock Text="{Binding LineTwo}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/>
          </StackPanel>
        </DataTemplate>
      </ListBox.ItemTemplate>
    </ListBox>
  </controls:PivotItem>
 
  <!--Pivot item two-->
  <controls:PivotItem Header="second"> 
    <!--Triple line list no text wrapping-->
      <ListBox x:Name="SecondListBox" Margin="0,0,-12,0" ItemsSource="{Binding Items}">
        <ListBox.ItemTemplate>
          <DataTemplate>
            <StackPanel Margin="0,0,0,17">
              <TextBlock Text="{Binding LineOne}" TextWrapping="NoWrap" Margin="12,0,0,0" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
              <TextBlock Text="{Binding LineThree}" TextWrapping="NoWrap" Margin="12,-6,0,0" Style="{StaticResource PhoneTextSubtleStyle}"/>
            </StackPanel>
          </DataTemplate>
        </ListBox.ItemTemplate>
      </ListBox>
  </controls:PivotItem>
</controls:Pivot>


Listing 4: Definition der ApplicationBar im XAML mit Buttons und MenuItems

<phone:PhoneApplicationPage 
  xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
  ...
  shell:SystemTray.IsVisible="True">

  <Grid x:Name="LayoutRoot" Background="Transparent">
  ...
  </Grid>

  <phone:PhoneApplicationPage.ApplicationBar>
    <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True" Mode="Default" Opacity="1.0" >

      <shell:ApplicationBarIconButton IconUri="/Images/save.png" Text="save" Click="Button1_Click" />
      <shell:ApplicationBarIconButton IconUri="/Images/delete.png" Text="delete" Click="Button2_Click" />
      <shell:ApplicationBarIconButton IconUri="/Images/help.png" Text="help" Click="Button3_Click" />
      <shell:ApplicationBarIconButton IconUri="/Images/settings.png" Text="settings" Click="Button4_Click" />

      <shell:ApplicationBar.MenuItems>
        <shell:ApplicationBarMenuItem Text="get default size value" Click="MenuItem1_Click" />
        <shell:ApplicationBarMenuItem Text="get mini size value" Click="MenuItem2_Click" />
      </shell:ApplicationBar.MenuItems>

    </shell:ApplicationBar>
  </phone:PhoneApplicationPage.ApplicationBar>
</phone:PhoneApplicationPage>


Listing 5: berlagern des Zurck-Buttons

protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
  // Gibt es Etwas in der eigenen App rckgngig machen?
  // z.B. Suchdialog ausblenden
  // Dann 
  e.Cancel = true;
  // sonst
  e.Cancel = false;
  base.OnBackKeyPress(e);
}


Listing 6: Kontaktdaten aus dem Adressbuch auslesen

Contacts cons = new Contacts();
cons.SearchCompleted += (s, ev) =>
{
  try
  {
    foreach (var contact in ev.Results)
    {
      Debug.WriteLine(contact.DisplayName);
    }
  }
  catch (System.Exception)
  {
    // Keine Ergebnisse
  }
};
cons.SearchAsync("Scheer", FilterKind.DisplayName, "Test");


Listing 7: Suchen nach Terminen in einem bestimmten Zeitraum

Appointments appts = new Appointments();
appts.SearchCompleted += (s, ev) =>
{
  foreach (var appointment in ev.Results)
  {
    Debug.WriteLine(appointment.Subject);
  }
};

DateTime start = DateTime.Now;
DateTime end = start.AddDays(7);

appts.SearchAsync(start, end, 20, "Appointments Test #1");


Listing 8: XAML-Code zum Konfigurieren von Ein- und Ausblendeffekten fr einzelne Seiten

<phone:PhoneApplicationPage
  ...
  xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
  ...>

<toolkit:TransitionService.NavigationInTransition>
  <toolkit:NavigationInTransition>
    <toolkit:NavigationInTransition.Backward>
      <toolkit:TurnstileTransition
        Mode="BackwardIn" />
      </toolkit:NavigationInTransition.Backward>
    <toolkit:NavigationInTransition.Forward>
      <toolkit:TurnstileTransition
        Mode="ForwardIn" />
    </toolkit:NavigationInTransition.Forward>
  </toolkit:NavigationInTransition>
</toolkit:TransitionService.NavigationInTransition>
<toolkit:TransitionService.NavigationOutTransition>
  <toolkit:NavigationOutTransition>
    <toolkit:NavigationOutTransition.Backward>
      <toolkit:TurnstileTransition
        Mode="BackwardOut" />
    </toolkit:NavigationOutTransition.Backward>
    <toolkit:NavigationOutTransition.Forward>
      <toolkit:TurnstileTransition
        Mode="ForwardOut" />
    </toolkit:NavigationOutTransition.Forward>
  </toolkit:NavigationOutTransition>
</toolkit:TransitionService.NavigationOutTransition>

...
</phone:PhoneApplicationPage>

