private void PageSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs <double> e) { if (DocumentReader?.PageCount > e.NewValue) { DocumentReader.GoToPage((int)e.NewValue); } }
private void PageNumberTextBox_KeyUp(object sender, KeyEventArgs e) { if (e.Key != Key.Enter) { return; } int pageNumber; if (int.TryParse(PageNumberTextBox.Text, out pageNumber)) { DocumentReader.GoToPage(pageNumber); } }
private void LoadPreviousState() { Dispatcher.Invoke(() => { ResizeMode = ResizeMode.NoResize; }); var pageCount = -1; var done = false; while (!done) { Dispatcher.Invoke(() => { if (DocumentReader.PageCount != pageCount) { pageCount = DocumentReader.PageCount; } else { done = true; } } ); Thread.Sleep(100); } Dispatcher.Invoke(() => { if (_state.CurrentBook != null) { FinishLoadingDocument(); double newPageDouble = _state.CurrentBook.CurrentPage * DocumentReader.PageCount / _state.CurrentBook.PageCount; var newPage = (int)Math.Ceiling(newPageDouble); DocumentReader.GoToPage(newPage); } }); Thread.Sleep(300); Dispatcher.Invoke(() => { ResizeMode = ResizeMode.CanResize; }); }