Exemplo n.º 1
0
        private async void BuildPage()
        {
            // Access Calibre SQLite database
            Calibre calibre = new Calibre();
            await calibre.GetBooks();

            // Populate Xaml page
            try
            {
                await Populate(calibre);
            }
            catch (Exception e)
            {
                Debug.WriteLine(e.Message);
            }
        }
Exemplo n.º 2
0
        private async Task Populate(Calibre calibre)
        {
            foreach (Book book in calibre.Books)
            {
                ListViewItem item = new ListViewItem();
                item.Content = new Grid();
                Grid grid = (Grid)item.Content;
                grid.Height = 100;
                grid.Margin = new Thickness(0, 0, 0, 0);

                ColumnDefinition col1 = new ColumnDefinition();
                ColumnDefinition col2 = new ColumnDefinition();
                col1.Width = new GridLength(0, GridUnitType.Auto);
                col2.Width = new GridLength(1, GridUnitType.Star);
                grid.ColumnDefinitions.Add(col1);
                grid.ColumnDefinitions.Add(col2);

                Image       image       = new Image();
                BitmapImage bitmapImage = new BitmapImage();
                StorageFile imageFile   = await StorageFile.GetFileFromPathAsync(book.Cover.ToString());

                using (var stream = await imageFile.OpenAsync(Windows.Storage.FileAccessMode.Read))
                {
                    await bitmapImage.SetSourceAsync(stream);

                    bitmapImage.DecodePixelHeight = 100;
                    image.Margin = new Thickness(0, 0, 5, 0);
                    image.Width  = 80;
                    image.Source = bitmapImage;
                }

                RichTextBlock richTextBlock = new RichTextBlock();
                richTextBlock.TextWrapping = TextWrapping.Wrap;
                Paragraph paragraph1 = new Paragraph();
                Paragraph paragraph2 = new Paragraph();
                Run       title      = new Run();
                title.Text = $"{book.TitleName}{System.Environment.NewLine}{book.AuthorName}";
                Run series = new Run();
                if (book.SeriesName == "")
                {
                    series.Text = $"";
                }
                else
                {
                    series.Text = $"{book.SeriesName} [{book.SeriesIndex}]";
                }
                title.FontWeight = FontWeights.Bold;
                paragraph1.Inlines.Add(title);
                paragraph2.Inlines.Add(series);
                richTextBlock.Blocks.Add(paragraph1);
                richTextBlock.Blocks.Add(paragraph2);

                grid.Children.Add(image);
                grid.Children.Add(richTextBlock);

                Grid.SetColumn(image, 0);
                Grid.SetColumn(richTextBlock, 1);

                BookList.Items.Add(item);
            }
        }