Assembly Microsoft.Phone.Controls verwenden

Um tolle Windows Phone UI-Elemente, wie etwa das Pivot-Element, benutzen zu können, muss der Microsoft.Phone.Controls Namespace deklariert werden. Dazu muss man seinem Projekt einen Verweis auf die „Windows Phone Controls“-Assembly (Bibliothek) hinzufügen (Verweis hinzufügen -> .NET -> Microsoft.Phone.Controls):

Achtung: Der Verweis kann nur hinzugefügt werden, wenn das Silverlight for Windows Phone Toolkit installiert ist. Ob das Toolkit bereits installiert ist, erkennt man daran, ob ein Ordner namens Toolkit im Windows Phone SDK-Installationsort (z.B. C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1) vorhanden ist.

Sobald der Verweis vorhanden ist, kann man den Namespace in seiner XAML-Datei (z.B. MainPage.xaml) einbinden:

1
2
3
4
5
<phone:PhoneApplicationPage 
    ...
    xmlns:controls="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls"
    ...
>

Durch den Namespace controls stehen dann einem erweiterte Deklarationsmöglichkeiten zur Verfügungen, mit denen sich beispielsweise eine Pivot-Ansicht erstellen lässt:

1
2
3
4
5
6
7
8
<controls:Pivot Title="PIVOT DEMONSTRATION">
    <controls:PivotItem Header="Item 1">
    </controls:PivotItem>
    <controls:PivotItem Header="Item 2">
    </controls:PivotItem>
    <controls:PivotItem Header="Item 3">
    </controls:PivotItem>
</controls:Pivot>

Hello World-App mit Windows Phone und Android

Aus Jux und Dollerei habe ich eine native Hello World-App für Windows Phone und Android gebaut, welche bei Klick auf einen Button ein Pop-Up anzeigt. Bei der Entwicklung des Beispiels war es mir wichtig, ein ähnliches und überschaubares Projekt mit Android-Code (Java) und Windows Phone-Code (C#) zu entwerfen, welches die Ähnlichkeiten und Unterscheide beider Programmiersprachen zeigt.

Hier der Code für meinem Vergleich:
Hello World-App mit Windows Phone und Android weiterlesen

App direkt auf dem Windows Phone deployen

Wer als Entwickler seine Windows Phone Apps direkt auf dem Gerät testen möchte, der muss vorher folgende Schritte erledigen:

  1. Als Student bei Microsoft DreamSpark registrieren um kostenlosen Apps zu publishen
  2. Am App Hub registrieren
  3. Windows Phone Developer Registration auf dem Computer starten (wird zusammen mit dem Windows Phone SDK 7.1 installiert)

Das Endergebnis sollte dann so ausssehen:

Zum Deployen der App muss dann in Visual Studio nur noch Zune gestartet -und „Windows Phone Device“ anstatt des Emulators ausgewählt werden. Viel Spaß beim deployen!

Windows Phone Entwicklungsumgebung aufsetzen

Wer für Windows Phone entwickeln möchte, braucht so einige Tools. Damit das Setup auch ordentlich funktioniert, sollten die jeweiligen Tools in einer bestimmten Reihenfolge installiert werden, welche wie folgt aussieht:

  1. Microsoft Visual Studio 2010 Express ALL-IN-ONE ISO
  2. Microsoft Visual Studio 2010 Service Pack 1
  3. .NET Framework 3.5 full package
  4. Microsoft Expression Blend 4
  5. Games for Windows Marketplace Client (Voraussetzung damit das XNA Game Studio erfolgreich installiert werden kann)
  6. Microsoft XNA Game Studio 4.0 Refresh
  7. Windows Phone SDK 7.1 (ISO Downloads)
  8. Windows Phone SDK 7.1.1 Update (für Kompatibilität mit der Windows 8-Preview)
  9. Silverlight for Windows Phone Toolkit – Nov 2011 (7.1 SDK)
  10. Microsoft Zune Software

Das Microsoft XNA Game Studio muss installiert werden, damit beim Kompilieren nicht der Fehler: „The target “GetCopyToOutputDirectoryContentProjectItems” does not exist in the project.“ auftritt:

Die Microsoft Zune Software ist nötig, um die Windows Phone App auf einem angeschlossenem Smartphone zu testen.

Hinweis 1: Alle Links leiten zu den englischen Downloadversionen weiter, da dort die Menüs sehr gut verständliche Namen haben.

Hinweis 2: Wer mit der Windows 8 Preview arbeitet und Windows Phone sowie Windows 8 Metro-Apps entwickeln möchte, muss Visual Studio 2010 und den Visual Studio 2012 RC parallel installieren, da Windows Phone Apps derzeit nur mit VS 2010 und Windows 8 Metro-Apps nur mit VS 2012 bzw. VS 11 erstellt werden können. Dabei ist es ganz wichtig, dass Visual Studio 2010 (und Expression Blend 4) VOR Visual Studio 2012 RC (mitsamt „Blend for Visual Studio 11“) installiert werden. Andernfalls können die Blend-Installationen irreparabel beschädigt werden.

Detect touchscreen devices with JavaScript

There are a lot of ways to detect touchscreen devices with JavaScript. Here are my favorites:

function isTouchDevice(){
  return (typeof(window.ontouchstart) != 'undefined') ? true : false;
}
function isTouchDevice(){
  return ('ontouchstart' in window) ? true : false;
}
function isTouchDevice(){
  return 'ontouchstart' in window;
}

Execution:

if(isTouchDevice())
  alert('Touch me!');
else
  alert('Click me!');

Please note: Windows Phone 7 does not support touch events that’s why you should do this:

function isTouchDevice(){
  if(navigator.userAgent.match('Windows Phone')){
    return true;
  }else{
    return 'ontouchstart' in window;
  }
}

What I also like is the following approach:

if (window.navigator.msPointerEnabled) {
  alert('IE10 / Windows 8 / Touch, pen and mouse');
}
else if('ontouchstart' in window){
  alert('touch device');
}
else{
  alert('mouse device');
}