0

Google Books API にアクセスして、アプリの本の結果ページにサムネイル画像を表示しています。ユーザーが書籍リストにすぐにアクセスしたときに、画像フォルダーから「読み込み中」の png 画像を表示したいサムネールが Google ブックス API から読み込まれるまでに時間がかかります。次に、元のサムネイル画像が 1 つずつ読み込み中の画像の上に読み込まれ、ユーザーに素晴らしいエクスペリエンスを提供します。問題は、どうすれば画像を再バインドできるかということです (つまり、読み込み中の画像を読み込んだ後、実際のサムネイルを読み込みたいです)。ここに関連するコードがあります。どうすれば適切な方法でそれを行うことができますか?

コンバーターを使用している場合、どの画像をいつ表示するかを特定する方法がわかりません。

    <DataTemplate x:Key="BooksItemTemplate">
        <Grid Margin="{StaticResource PhoneTouchTargetOverhang}" Background="Transparent">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions> 
            <Button Click="Button_Click_1" />
            <Image Source="Images/loading.jpg" Height="150" Width="150"/>
            <StackPanel Grid.Column="1" VerticalAlignment="Top">
                <TextBlock Text="{Binding BookTitle}" Style="{StaticResource PhoneTextNormalStyle}" TextWrapping="Wrap" FontFamily="{StaticResource PhoneFontFamilySemiBold}"/>
                <TextBlock Text="{Binding Identificationno}" Style="{StaticResource PhoneTextNormalStyle}" TextWrapping="Wrap" FontFamily="{StaticResource PhoneFontFamilySemiLight}"/>
            </StackPanel>
        </Grid>
    </DataTemplate>

 <phone:LongListSelector x:Name="bookslist" 
                                 Background="Transparent"  
                                 IsGroupingEnabled="False"                 
                                 ItemTemplate="{StaticResource BooksItemTemplate}"/>


 public BookCategoriesViewModel bookcategoriesvm;
    public BooksListing()
    {
        InitializeComponent();
        bookcategoriesvm = new BookCategoriesViewModel();
    }

    protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {
        base.OnNavigatedTo(e);
        string categoryid = string.Empty;
        if (NavigationContext.QueryString.TryGetValue("catid", out categoryid))
        {
           bookcategoriesvm.GetBookcategories(Convert.ToInt64(categoryid));              
        }

        bookslist.ItemsSource = bookcategoriesvm.BooksCategoriesList;
    }
4

1 に答える 1

1

最も簡単な方法は、サムネイルのダウンロードが完了するたびに、このように 2 つの画像 (一番下にある「読み込み中の画像」) を重ね合わせることです。これにより、読み込み中の画像が非表示になります。

于 2013-09-22T21:24:09.077 に答える