WPF 文档查看器文档末尾

  • 本文关键字:文档 WPF c# wpf
  • 更新时间 :
  • 英文 :


当文档查看器到达 XPS 文档的末尾时,如何更新用户控件各自的 ViewModel 中的属性?

若要查看文档,我将 XPS 文档下载到应用,并使用 IDocumentPaginatorSource 属性绑定到文档查看器中的文档属性。文档(转换后的PowerPoint演示文稿(加载得很好,用户可以滚动浏览PPT,就好像它是一页文档一样。好。

我知道在使用独立滚动查看器时如何识别文档事件的结束,但我在文档查看器本身或其滚动查看器中找不到任何功能。

以下是相关代码。请善待并告知是否有办法更好地提出这个问题,或者我是否错过了一个基本概念,我很乐意编辑。 谢谢!

视图

<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");
}

视图模型

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

我在 DocumentViewer 中使用了 PageViewsChanged 事件,并在事件中输入了 if 语句"if (DocumentViewPowerPoint.PageCount == DocumentViewPowerPoint.MasterPageNumber("。