private void DrawContentPage(Model.Pages.ContentPage page, int pageIndex) { var leftOffset = pageIndex * PhotoBookModel.PageWidthInPixels; // Create background var bgRectangle = PageDrawingUtilities.CreateBackgroundRectangle(page.Background); Canvas.SetLeft(bgRectangle, leftOffset); canvas.Children.Add(bgRectangle); backgrounds[pageIndex] = bgRectangle; var layout = page.Layout; images[pageIndex] = new UIElement[layout.NumOfImages][]; labels[pageIndex] = new Label[layout.NumOfImages]; for (int imgIndex = 0; imgIndex < layout.NumOfImages; imgIndex++) { var imgConstraints = layout.ImageConstraints[imgIndex]; var image = page.GetImage(imgIndex); if (image != null) { images[pageIndex][imgIndex] = DrawImage(image, imgConstraints, leftOffset); } else { images[pageIndex][imgIndex] = DrawPlaceholderImage(imgConstraints, leftOffset); } labels[pageIndex][imgIndex] = DrawImageComment(page.GetComment(imgIndex), imgConstraints, leftOffset); } SetFontColor(pageIndex); }
private void DrawFrontCover() { canvas.Children.Clear(); canvas.Width = PhotoBookModel.PageWidthInPixels; canvas.Height = PhotoBookModel.PageHeightInPixels; var frontCover = viewModel.FrontCover; backgroundRectangle = PageDrawingUtilities.CreateBackgroundRectangle(frontCover.Background); canvas.Children.Add(backgroundRectangle); titleLabel = new Label() { Content = frontCover.Title, Width = PhotoBookModel.PageWidthInPixels, Height = PhotoBookModel.PageHeightInPixels, HorizontalContentAlignment = HorizontalAlignment.Center, VerticalContentAlignment = VerticalAlignment.Center, FontSize = Model.Pages.FrontCover.FontSize, // TODO: Should we hardcode it in the model or let the user change it? Foreground = new SolidColorBrush(Color.FromRgb(255, 255, 255)), }; AdjustFontColor(); canvas.Children.Add(titleLabel); }
private void DrawBackCover() { canvas.Children.Clear(); canvas.Width = PhotoBookModel.PageWidthInPixels; canvas.Height = PhotoBookModel.PageHeightInPixels; var backCover = viewModel.BackCover; canvas.Children.Add( PageDrawingUtilities.CreateBackgroundRectangle(backCover.Background) ); }