ViewContent.xaml.cs 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. using ComPDFKitViewer;
  2. using ComPDFKitViewer.PdfViewer;
  3. using PDF_Office.EventAggregators;
  4. using PDF_Office.Model;
  5. using PDF_Office.ViewModels;
  6. using PDF_Office.Views.PropertyPanel.ViewModular;
  7. using Prism.Events;
  8. using Prism.Regions;
  9. using System;
  10. using System.Threading;
  11. using System.Threading.Tasks;
  12. using System.Windows;
  13. using System.Windows.Controls;
  14. using System.Windows.Input;
  15. using System.Windows.Media;
  16. using System.Windows.Threading;
  17. namespace PDF_Office.Views
  18. {
  19. /// <summary>
  20. /// Interaction logic for ViewContent
  21. /// </summary>
  22. public partial class ViewContent : UserControl
  23. {
  24. private ViewContentViewModel viewModel = null;
  25. private string unicode = "";
  26. public ViewContent()
  27. {
  28. InitializeComponent();
  29. unicode = App.mainWindowViewModel.SelectedItem.Unicode;
  30. viewModel = (ViewContentViewModel)this.DataContext;
  31. }
  32. public ViewContent(IEventAggregator eventAggregator) :this()
  33. {
  34. eventAggregator.GetEvent<SplitEvent>().Subscribe(ChangeSplitModeUI, e => e.Unicode == unicode);
  35. }
  36. /// <summary>
  37. /// 根据Vm事件通知处理分屏布局的事件
  38. /// </summary>
  39. /// <param name="e"></param>
  40. private void ChangeSplitModeUI(SplitEventArgs e)
  41. {
  42. switch (e.Mode)
  43. {
  44. case EventAggregators.SplitMode.Vertical:
  45. //垂直分屏
  46. HorizontalSplitter.Visibility = Visibility.Collapsed;
  47. VerticalSplitter.Visibility = Visibility.Visible;
  48. RowRight.Height = new GridLength(0);
  49. ColumnBottom.Width = new GridLength(0,GridUnitType.Star);
  50. Grid.SetColumn(SplitPDFViewer,0);
  51. Grid.SetRow(SplitPDFViewer,2);
  52. break;
  53. case EventAggregators.SplitMode.Horizontal:
  54. HorizontalSplitter.Visibility = Visibility.Visible;
  55. VerticalSplitter.Visibility = Visibility.Collapsed;
  56. RowRight.Height = new GridLength(0, GridUnitType.Star);
  57. ColumnBottom.Width = new GridLength(0);
  58. Grid.SetColumn(SplitPDFViewer, 2);
  59. Grid.SetRow(SplitPDFViewer, 0);
  60. break;
  61. case EventAggregators.SplitMode.Single:
  62. default:
  63. //退出分屏模式
  64. HorizontalSplitter.Visibility = Visibility.Collapsed;
  65. VerticalSplitter.Visibility = Visibility.Collapsed;
  66. RowRight.Height = new GridLength(0);
  67. ColumnBottom.Width = new GridLength(0);
  68. break;
  69. }
  70. GridViewer.UpdateLayout();
  71. }
  72. /// <summary>
  73. /// 退出阅读模式
  74. /// </summary>
  75. /// <param name="sender"></param>
  76. /// <param name="e"></param>
  77. private void UserControl_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
  78. {
  79. if (Key.Escape == e.Key)
  80. {
  81. if (viewModel != null)
  82. {
  83. //App.IsBookMode = false;
  84. //SetReadMode(false);
  85. viewModel.UnReadModel();
  86. }
  87. }
  88. }
  89. }
  90. }