WPF Document Viewer Конец документа - PullRequest
0 голосов
/ 03 июля 2018

Как можно обновить свойство в соответствующей ViewModel пользовательского элемента управления, когда DocumentViewer достигает конца документа XPS?

Чтобы просмотреть документ, я загружаю документ XPS в приложение и использую свойство IDocumentPaginatorSource для привязки к свойству Document в DocumentViewer. Документ (преобразованная презентация PowerPoint) загружается просто отлично, и пользователь может прокручивать PPT, как если бы это был одностраничный документ. Хорошо.

Я знаю, как определить событие окончания документа при использовании автономного Scrollviewer, но я не могу найти какую-либо функцию в самом DocumentViewer или его Scrollviewer.

Ниже приведен соответствующий код. Пожалуйста, будьте добры и сообщите, если есть способ лучше задать этот вопрос или я пропустил основную концепцию, и я с удовольствием отредактирую. Спасибо!

View

<DocumentViewer Grid.Row="0"
                Name="DocumentViewPowerPoint"
                VerticalAlignment="Top"
                HorizontalAlignment="Left"
                Document="{Binding FixedFixedDocumentSequence}"
                ScrollViewer.ScrollChanged="OnScrollChanged"
                SizeChanged="DocumentViewPowerPoint_SizeChanged"
                Loaded="DocumentViewPowerPoint_Loaded"
                Visibility="{Binding XPSVis}"
                />

Просмотреть код позади

public TRCourseView(TrainingCourses selectedcourse, InterfaceDialogService dialogservice)
{
       InitializeComponent();

      _viewModel = new TRCourseViewVM(selectedcourse, dialogservice);
       this.DataContext = _viewModel;
}

private void OnScrollChanged(object sender, ScrollChangedEventArgs e)
{
    if (DocumentViewPowerPoint.CanMoveDown == false)
        MessageBox.Show("This Is The End");
}

ViewModel

private IDocumentPaginatorSource _fixedDocumentSequence;
public IDocumentPaginatorSource FixedFixedDocumentSequence
{
      get { return _fixedDocumentSequence; }
      set { SetProperty(ref _fixedDocumentSequence, value, () => FixedFixedDocumentSequence); }
}

1 Ответ

0 голосов
/ 03 июля 2018

Я использовал событие PageViewsChanged в DocumentViewer и поместил в него оператор if «if (DocumentViewPowerPoint.PageCount == DocumentViewPowerPoint.MasterPageNumber)».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...