123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- using ComPDFKitViewer.PdfViewer;
- using System;
- using System.Windows;
- namespace Compdfkit_Tools.Common
- {
- /// <summary>
- /// PasswordWindow.xaml 的交互逻辑
- /// </summary>
- public partial class PasswordWindow : Window
- {
- private CPDFViewer pdfViewer;
- public delegate void DialogCloseEventHandler(object sender, PasswordEventArgs e);
- public event DialogCloseEventHandler DialogClosed;
- public PasswordWindow()
- {
- InitializeComponent();
- }
- private void PasswordDialog_Loaded(object sender, RoutedEventArgs e)
- {
- PasswordDialog.Canceled += PasswordDialog_Canceled;
- PasswordDialog.Confirmed += PasswordDialog_Confirmed;
- PasswordDialog.Closed += PasswordDialog_Closed;
- }
- public void InitWithPDFViewer(CPDFViewer pdfViewer)
- {
- this.pdfViewer = pdfViewer;
- }
- private void PasswordDialog_Unloaded(object sender, RoutedEventArgs e)
- {
- PasswordDialog.Canceled -= PasswordDialog_Canceled;
- PasswordDialog.Confirmed -= PasswordDialog_Confirmed;
- PasswordDialog.Closed -= PasswordDialog_Closed;
- }
- private void PasswordDialog_Closed(object sender, EventArgs e)
- {
- PasswordEventArgs passwordEventArgs = new PasswordEventArgs(string.Empty);
- CloseWindow(passwordEventArgs);
- }
- private void PasswordDialog_Confirmed(object sender, string e)
- {
- if (pdfViewer != null)
- {
- pdfViewer.Document.UnlockWithPassword(e);
- if (pdfViewer.Document.IsLocked == false)
- {
- PasswordEventArgs passwordEventArgs = new PasswordEventArgs(e);
- CloseWindow(passwordEventArgs);
- }
- else
- {
- PasswordDialog.SetShowError("Wrong Password", Visibility.Visible);
- }
- }
- }
- private void PasswordDialog_Canceled(object sender, EventArgs e)
- {
- PasswordEventArgs passwordEventArgs = new PasswordEventArgs(string.Empty);
- CloseWindow(passwordEventArgs);
- }
- // 弹窗关闭时的处理逻辑
- private void CloseWindow(PasswordEventArgs dialogResult)
- {
- // 触发关闭事件,并传递返回值
- DialogClosed?.Invoke(this, dialogResult);
- // 关闭窗口
- Close();
- }
- }
- public class PasswordEventArgs : EventArgs
- {
- public string DialogResult { get; set; }
- public PasswordEventArgs(string dialogResult)
- {
- DialogResult = dialogResult;
- }
- }
- }
|