PasswordWindow.xaml.cs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. using ComPDFKit.PDFDocument;
  2. using System;
  3. using System.Windows;
  4. namespace Compdfkit_Tools.Common
  5. {
  6. /// <summary>
  7. /// Interaction logic for PasswordWindow.xaml
  8. /// </summary>
  9. public partial class PasswordWindow : Window
  10. {
  11. private CPDFDocument pdfDoc;
  12. public delegate void DialogCloseEventHandler(object sender, PasswordEventArgs e);
  13. public event DialogCloseEventHandler DialogClosed;
  14. public PasswordWindow()
  15. {
  16. InitializeComponent();
  17. }
  18. private void PasswordDialog_Loaded(object sender, RoutedEventArgs e)
  19. {
  20. }
  21. public void InitDocument(CPDFDocument pdfDoc)
  22. {
  23. this.pdfDoc = pdfDoc;
  24. PasswordDialog.Canceled -= PasswordDialog_Canceled;
  25. PasswordDialog.Confirmed -= PasswordDialog_Confirmed;
  26. PasswordDialog.Closed -= PasswordDialog_Closed;
  27. PasswordDialog.Canceled += PasswordDialog_Canceled;
  28. PasswordDialog.Confirmed += PasswordDialog_Confirmed;
  29. PasswordDialog.Closed += PasswordDialog_Closed;
  30. }
  31. private void PasswordDialog_Unloaded(object sender, RoutedEventArgs e)
  32. {
  33. PasswordDialog.Canceled -= PasswordDialog_Canceled;
  34. PasswordDialog.Confirmed -= PasswordDialog_Confirmed;
  35. PasswordDialog.Closed -= PasswordDialog_Closed;
  36. }
  37. private void PasswordDialog_Closed(object sender, EventArgs e)
  38. {
  39. PasswordEventArgs passwordEventArgs = new PasswordEventArgs(string.Empty);
  40. CloseWindow(passwordEventArgs);
  41. }
  42. private void PasswordDialog_Confirmed(object sender, string e)
  43. {
  44. if (pdfDoc != null)
  45. {
  46. pdfDoc.UnlockWithPassword(e);
  47. if (pdfDoc.IsLocked == false)
  48. {
  49. PasswordEventArgs passwordEventArgs = new PasswordEventArgs(e);
  50. CloseWindow(passwordEventArgs);
  51. }
  52. else
  53. {
  54. PasswordDialog.SetShowError("Wrong Password", Visibility.Visible);
  55. }
  56. }
  57. }
  58. private void PasswordDialog_Canceled(object sender, EventArgs e)
  59. {
  60. PasswordEventArgs passwordEventArgs = new PasswordEventArgs(string.Empty);
  61. CloseWindow(passwordEventArgs);
  62. }
  63. // The processing logic when the pop-up window is closed
  64. private void CloseWindow(PasswordEventArgs dialogResult)
  65. {
  66. // Trigger the close event and pass the return value
  67. DialogClosed?.Invoke(this, dialogResult);
  68. // Close the pop-up window
  69. Close();
  70. }
  71. }
  72. public class PasswordEventArgs : EventArgs
  73. {
  74. public string DialogResult { get; set; }
  75. public PasswordEventArgs(string dialogResult)
  76. {
  77. DialogResult = dialogResult;
  78. }
  79. }
  80. }