WP8 – Loading Spinner / Progress Indicator verwenden

Hallo Leute,

heute will ich euch ein einfaches Beispiel zeigen, wie man den ProgressIndicator bei WP8 verwenden kann.
An dieser Stelle ein Dankeschön an Channel9, welche das recht einfach beschrieben haben.

Der ProgressIndicator ist Teil des SystemTrays. Den SystemTray kann man wiederrum ein- und ausblenden. Achtet darauf in eurer App oder baut eure Methode so, dass der SystemTray richtig ein- bzw. ausgeblendet wird.

<phone:PhoneApplicationPage
    x:Class="xxxx"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:appBarUtils="clr-namespace:AppBarUtils;assembly=AppBarUtils"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    SupportedOrientations="Portrait" Orientation="Portrait"
    mc:Ignorable="d"
    shell:SystemTray.IsVisible="True"> <!-- TRAY EIN-/AUSBLENDEN -->

Kommen wir zur eigentlichen Methode. Diese ist recht simpel gehalten:

 /// <summary>
        /// Sets the prograss indicator.
        /// </summary>
        /// <param name="isVisible">if set to <c>true</c> [is visible].</param>
        private static void SetPrograssIndicator(bool isVisible, string text = "")
        {
            if(SystemTray.ProgressIndicator == null)
                SystemTray.ProgressIndicator = new ProgressIndicator();

            SystemTray.ProgressIndicator.IsIndeterminate = isVisible;
            SystemTray.ProgressIndicator.IsVisible = isVisible;
            SystemTray.ProgressIndicator.Text = text;
        }

Diese könnt Ihr nun ganz einfach aufrufen:

protected override void OnNavigatedTo(NavigationEventArgs e)
{
SetPrograssIndicator(true, "Loading Data...");
// do something...
SetPrograssIndicator(false);
}

Herauskommen sollte dann folgendes:

2013-11-28 09_45_10-Neuen Beitrag erstellen ‹ wagnsonner.com — WordPress

Cheers,
Christian

Leave a reply