Windows Phone 8.1 de charger des Images à partir d'une Url Distante de l'espace Réservé

Je suis déconner avec certains windows phone de développement que je suis nouveau à venir à partir d'un Android arrière-plan.

Je suis à l'aide de "theCatAPI" pour charger aléatoirement une image d'un chat et de le montrer, puis quand l'image est cliquée, ou sur le bouton au bas de l'écran, l'image s'actualise pour un nouveau.

J'ai le texte suivant:

XAML:

<Page
    x:Class="CatFactsPics.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:CatFactsPics"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

    <Grid x:Name="LayoutRoot">

        <Grid.ChildrenTransitions>
            <TransitionCollection>
                <EntranceThemeTransition/>
            </TransitionCollection>
        </Grid.ChildrenTransitions>

        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>

        <!-- TitlePanel -->
        <StackPanel Grid.Row="0" Margin="24,17,0,28">
            <TextBlock Text="My Application" Style="{ThemeResource TitleTextBlockStyle}" Typography.Capitals="SmallCaps"/>
            <TextBlock Text="page title" Margin="0,12,0,0" Style="{ThemeResource HeaderTextBlockStyle}"/>
        </StackPanel>

        <!--TODO: Content should be placed within the following grid-->
        <Grid Grid.Row="1" x:Name="ContentRoot">
            <Image HorizontalAlignment="Center" Stretch="UniformToFill" VerticalAlignment="Center" x:Name="KittyPic" Tapped="KittyPic_Tapped"/>
            <Button HorizontalAlignment="Center" VerticalAlignment="Bottom" x:Name="newPic" Click="newPic_Click" >New Kitty</Button>
        </Grid>
    </Grid>
</Page>

et dans la page.cs:

...
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            this.navigationHelper.OnNavigatedTo(e);

            Uri myUri = new Uri("http://thecatapi.com/api/images/get?format=src&type=jpg", UriKind.Absolute);
            KittyPic.Source = new BitmapImage(myUri);
        }
...
        private void newPic_Click(object sender, RoutedEventArgs e)
        {
            Uri myUri = new Uri("http://thecatapi.com/api/images/get?format=src&type=jpg", UriKind.Absolute);
            BitmapImage bmi = new BitmapImage();
            bmi.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
            bmi.UriSource = myUri;
            KittyPic.Source = bmi;
        }

J'ai quelques questions:

1) est-ce la bonne façon de faire les choses? Dans Android, je vais l'essayer et de faire les choses de manière asynchrone pour éviter de caler le thread d'INTERFACE utilisateur. Cela étant dit, je ne semble pas avoir de problèmes avec la façon dont ils le sont maintenant. Je ne suis pas familier avec le Windows façon de faire les choses, et n'ai pas trouvé toutes les ressources de donner la moindre explication ou des conseils pour le faire.

2) Il ya un retard dans l'affichage de la nouvelle image de causer un court (quelques secondes) de la période où l'affichage de l'image vire au noir, avant la nouvelle image réapparaît. Est-il un moyen de réglage de telle manière qu'il soit à l'image ancienne demeure jusqu'à ce que le nouveau est physiquement prêt à être affiché, ou bien afficher un espace réservé à "chargement" de l'image jusqu'à ce que la nouvelle peut la remplacer.

Tout autre avis ou des conseils sur la façon de faire les choses serait super, merci.

OriginalL'auteur o0rebelious0o | 2014-04-23