WPF文档查看器文档结尾

时间:2018-07-03 16:35:22

标签: c# wpf

当DocumentViewer到达XPS Document的末尾时,如何更新用户控件各自ViewModel中的属性?

要查看文档,我将XPS文档下载到应用程序,并使用IDocumentPaginatorSource属性绑定到DocumentViewer中的Document属性。该文档(转换后的PowerPoint演示文稿)可以很好地加载,并且用户可以像浏览一页文档一样在PPT中滚动。很好

我知道在使用独立的Scrollviewer时如何识别文档事件的结尾,但是在DocumentViewer本身或其Scrollviewer中找不到任何功能。

以下为相关代码。请友善并建议是否有办法更好地提出这个问题,或者如果我错过了基本概念,我会很乐意编辑。谢谢!

查看

<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 :(得分:1)

我在DocumentViewer中使用了PageViewsChanged事件,并在事件中放置了if语句“ if(Document ViewPowerPoint.PageCount == DocumentViewPowerPoint.MasterPageNumber)”。