Kolumne: XAML-Expertise

XAML-Tipp: UWP – An die Taskleiste anheften
Keine Kommentare

In der Kolumne „XAML Expertise“ präsentiert Gregor Biswanger Top-How-tos zum Thema XAML. Einsteiger und fortgeschrittene XAML-Experten sollen hier durch geballtes Wissen gesättigt werden. Heute gibt es folgende Expertise: „UWP: An die Taskleiste anheften“

Die eigene Windows-App immer aufrufbereit an die Taskleiste anheften – im Prinzip kann der Benutzer das selbst unter Windows mit jedem beliebigen Programm oder Dokument. Allerdings kann es für die eigene App vom Vorteil sein, wenn unsere App den Benutzer dazu dezent animiert. Sinnvoll ist es auf jeden Fall, wenn die eigene App für den täglichen Bedarf gedacht ist, wie zum Beispiel Geschäftsanwendungen. Nur sollte keineswegs damit übertrieben werden, denn niemand mag lästige Dialogfenster mit Aufforderungen.

Ab dem Windows 10 Fall Creators Update gibt es passend dazu das TaskbarManager-API. Der erste Schritt ist daher, im eigenen Code zu überprüfen, ob das API für die aktuelle Windows-10-Version verfügbar ist. Das API selbst kann nur innerhalb vom UIThread zum Einsatz kommen, andernfalls erhalten wir eine Exception. Der nächste Schritt wäre es, mit dem API zu überprüfen, ob auf dem jeweiligen System überhaupt eine Taskbar vorhanden ist und auch den Zugriff erlaubt. Schließlich läuft Windows 10 auf allen gängigen Geräten, und mobile Geräte haben gar keine klassische Taskleiste. Zum Schluss erfolgt die hauptsächliche Frage an das API zum Anheften. Es zeigt dem Benutzer automatisch ein Dialogfenster an, in dem er gefragt wird, ob die App angeheftet werden soll (Abb. 1). Den gesamte Sourcecode dazu finden Sie in Listing 1.

Abb. 1: Windows-10-App an die Taskleiste anheften

Abb. 1: Windows-10-App an die Taskleiste anheften

private async void Button_Click(object sender, RoutedEventArgs e)
{
  if (ApiInformation.IsTypePresent("Windows.UI.Shell.TaskbarManager"))
  {
    bool isPinningAllowed = TaskbarManager.GetDefault().IsPinningAllowed;

    if (isPinningAllowed)
    {
      await TaskbarManager.GetDefault().RequestPinCurrentAppAsync();
    }
  }
  else
  {
    // Older version of Windows, no taskbar APIs
  }
}

Tipp: Es wird empfohlen, den Button zur Anheftaufforderung nur einzublenden, wenn der Benutzer die App noch nicht angeheftet hat. Dazu zählt ebenfalls, erst einmal zu überprüfen, ob das API bei der aktuellen Windows-Version verfügbar und eine Taskleiste vorhanden ist. In Listing 2 wird dazu der passende Code für ein Behavior gezeigt. Das PinToTaskbar-Behavior wird einem Button zugewiesen, der nur dann angezeigt wird, wenn die soeben genannten Punkte alle erfüllt werden. Andernfalls wird der Button automatisch ausgeblendet.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -