RedactionContentViewModel.cs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. using ComPDFKitViewer.AnnotEvent;
  2. using ComPDFKitViewer.PdfViewer;
  3. using PDF_Office.EventAggregators;
  4. using PDF_Office.Model;
  5. using Prism.Commands;
  6. using Prism.Events;
  7. using Prism.Mvvm;
  8. using Prism.Regions;
  9. using System;
  10. using System.Collections.Generic;
  11. using System.Linq;
  12. using System.Windows;
  13. using System.Windows.Media;
  14. namespace PDF_Office.ViewModels.EditTools.Redaction
  15. {
  16. public class RedactionContentViewModel : BindableBase,INavigationAware
  17. {
  18. public IEventAggregator eventAggregator;
  19. public IRegionManager redactionRegion;
  20. private CPDFViewer PDFViewer;
  21. public string RedactionDocumentRegionName { get; set; }
  22. public string RedactionBottomBarRegionName { get; set; }
  23. public string RedactionDocumentName = "RedactionDocumentContent";
  24. public string Unicode = null;
  25. public DelegateCommand CloseEditToolCommand { get; set; }
  26. public RedactionContentViewModel(IRegionManager regionManager, IEventAggregator eventAggregator)
  27. {
  28. this.redactionRegion = regionManager;
  29. this.eventAggregator = eventAggregator;
  30. RedactionDocumentRegionName = Guid.NewGuid().ToString();
  31. Unicode = App.mainWindowViewModel.SelectedItem.Unicode;
  32. CloseEditToolCommand = new DelegateCommand(CloseEditTool);
  33. }
  34. public void CloseEditTool()
  35. {
  36. PDFViewer.SetMouseMode(MouseModes.Default);
  37. redactionRegion.Regions[RegionNames.ViwerRegionName].Remove(PDFViewer);
  38. redactionRegion.Regions[RedactionDocumentRegionName].Remove(PDFViewer);
  39. this.eventAggregator.GetEvent<CloseEditToolEvent>().Publish(new EnumCloseModeUnicode { Unicode = this.Unicode, Status = EnumCloseMode.StatusCancel });
  40. }
  41. public bool IsNavigationTarget(NavigationContext navigationContext)
  42. {
  43. return true;
  44. }
  45. public void OnNavigatedFrom(NavigationContext navigationContext)
  46. {
  47. }
  48. public void OnNavigatedTo(NavigationContext navigationContext)
  49. {
  50. navigationContext.Parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out PDFViewer);
  51. if(!redactionRegion.Regions[RedactionDocumentRegionName].Views.Contains(PDFViewer))
  52. {
  53. RedactionAnnotArgs redactionArgs = new RedactionAnnotArgs();
  54. AnnotHandlerEventArgs annotArgs = null;
  55. redactionArgs.LineColor = ((SolidColorBrush)Brushes.Black).Color;
  56. redactionArgs.BgColor = ((SolidColorBrush)Brushes.Black).Color;
  57. redactionArgs.FontColor = ((SolidColorBrush)Brushes.Red).Color;
  58. //redactionArgs.LineColor = Settings.Default.RedactionsSettings.LineColor;
  59. //redactionArgs.BgColor = Settings.Default.RedactionsSettings.BgColor;
  60. //redactionArgs.FontColor = Settings.Default.RedactionsSettings.FontColor;
  61. //redactionArgs.Align = Settings.Default.RedactionsSettings.Align;
  62. //redactionArgs.FontSize = Settings.Default.RedactionsSettings.FontSize;
  63. //redactionArgs.Content = Settings.Default.RedactionsSettings.Content;
  64. //if (!Settings.Default.RedactionsSettings.isUseText)
  65. //{
  66. // redactionArgs.Content = "";
  67. //}
  68. annotArgs = redactionArgs;
  69. if (annotArgs != null)
  70. {
  71. //annotArgs.Author = Settings.Default.AppProperties.Description.Author;
  72. PDFViewer.SetMouseMode(MouseModes.AnnotCreate);
  73. PDFViewer.SetToolParam(annotArgs);
  74. }
  75. redactionRegion.AddToRegion(RedactionDocumentRegionName, PDFViewer);
  76. }
  77. }
  78. }
  79. }