ViewContentViewModel.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using Microsoft.Win32;
  2. using Prism.Commands;
  3. using Prism.Mvvm;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using ComPDFKitViewer.PdfViewer;
  10. using Prism.Regions;
  11. namespace PDF_Office.ViewModels
  12. {
  13. public class ViewContentViewModel : BindableBase
  14. {
  15. public DelegateCommand LoadFile { get; set; }
  16. private CPDFViewer PDFViewer { get; set; }
  17. public IRegionManager region;
  18. public ViewContentViewModel(IRegionManager regionManager)
  19. {
  20. LoadFile = new DelegateCommand(loadFile);
  21. region = regionManager;
  22. //在构造函数中使用Region需要借助Dispatcher 确保UI已经加载完成
  23. System.Windows.Application.Current.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Send, new Action(() => { loadFile(); }));
  24. }
  25. private void loadFile()
  26. {
  27. OpenFileDialog openFileDialog = new OpenFileDialog();
  28. openFileDialog.Filter = "PDF Files (*.pdf)|*.pdf";
  29. if ((bool)openFileDialog.ShowDialog())
  30. {
  31. string file = openFileDialog.FileName;
  32. var PDFViewer = new CPDFViewer();
  33. PDFViewer.InitDocument(file);
  34. PDFViewer.Load();
  35. region.AddToRegion("PDFViewer", PDFViewer);
  36. }
  37. }
  38. }
  39. }