/// <summary> /// Inicializa las propiedades que muestran el cómic /// </summary> protected override void InitBookView() { ComicBook comicBook = new ComicBook(); int pageIndex = 0; // Carga el archivo comicBook.Load(Book.FileName); // Crea la colección de páginas ComicPages = new ControlListViewModel(); // Rellena la colección de páginas foreach (ComicPage page in comicBook.Pages) { BookPageModel bookPage = new BookPageModel(); // Asigna las propiedades bookPage.FileName = bookPage.FileName; bookPage.PageNumber = pageIndex++; // Añade la página del libro a la lista de página ComicPages.Items.Add(new PageListItemViewModel(bookPage)); } // Asigna el manejador de eventos comicBook.ComicAction += (sender, comicArgs) => { if (comicArgs.Action == EventComicArgs.ActionType.Uncompress) { int index = comicArgs.Actual - 1; // Asigna los nombres de archivo if (index < ComicPages.Items.Count && index < comicBook.Pages.Count && ComicPages.Items[index] is PageListItemViewModel page) { page.Page.FileName = comicBook.Pages[index].FileName; page.ThumbFileName = comicBook.Pages[index].FileName; } // Si ya ha terminado, ordena los nombres if (index >= ComicPages.Items.Count - 1) { // Ordena las páginas comicBook.Pages.Sort(); // Asigna los nombres de archivo for (int indexPage = 0; indexPage < comicBook.Pages.Count; indexPage++) { if (ComicPages.Items[indexPage] is PageListItemViewModel pageItem) { pageItem.Page.FileName = comicBook.Pages[indexPage].FileName; pageItem.ThumbFileName = comicBook.Pages[indexPage].FileName; } } } // Se coloca en la primera página ShowPageReal(0); } }; // Descomprime el archivo comicBook.Uncompress(PathTarget, true); }