using PDF_Office.ViewModels; using Prism.Regions; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using Prism.Events; using PDF_Office.EventAggregators; using PDF_Office.CustomControl; using Prism.Ioc; using PDF_Office.Helper; using System.IO; using ComPDFKit.PDFDocument; using PDFSettings.Settings; using PDF_Office.Properties; namespace PDF_Office.Views { /// /// MainWindow.xaml 的交互逻辑 /// public partial class MainWindow : Window { public IEventAggregator aggregator; public IRegionManager region; public MainWindow() { InitializeComponent(); } /// /// 此类因为Dragablz控件的原因需要特殊处理 /// /// public MainWindow(IEventAggregator eventAggregator, IContainerProvider container) :this() { aggregator = eventAggregator; eventAggregator?.GetEvent().Publish(new DragablzWindowEventArgs() { TabControl = TabablzControl, Type = DragablzWindowEventType.Opened }); } private void BtnMiniSize_Click(object sender, RoutedEventArgs e) { System.Windows.SystemCommands.MinimizeWindow(this); } private void BtnClose_Click(object sender, RoutedEventArgs e) { System.Windows.SystemCommands.CloseWindow(this); } private void BtnReStore_Click(object sender, RoutedEventArgs e) { if (this.WindowState == WindowState.Maximized) System.Windows.SystemCommands.RestoreWindow(this); else System.Windows.SystemCommands.MaximizeWindow(this); } private void Window_Activated(object sender, EventArgs e) { App.Current.MainWindow = this; aggregator?.GetEvent().Publish(new DragablzWindowEventArgs() { TabControl = TabablzControl, Type = DragablzWindowEventType.Activated }); } private void Window_Closed(object sender, EventArgs e) { aggregator?.GetEvent().Publish(new DragablzWindowEventArgs() { TabControl = TabablzControl, Type = DragablzWindowEventType.Closed }); } private bool isNewDocument = false; public void LoadPdfViewer(string[] filePaths) { var content = App.mainWindowViewModel.SelectedItem.DataContext as MainContentViewModel; if (filePaths.Count() == 1) { if (App.OpenedFileList.Contains(filePaths[0])) { App.mainWindowViewModel.SelectItem(filePaths[0]); } else { content.OpenFile(filePaths[0]); } ToolMethod.SetFileThumbImg(filePaths[0]); } else { var fileList = filePaths.ToList().Where(x => !App.OpenedFileList.Exists(y => y == x)).ToList(); if (fileList.Count <= 0) return; content.OpenFile(filePaths[0]); for (int i = 1; i < fileList.Count(); i++) { if (!App.OpenedFileList.Contains(fileList[i])) { App.mainWindowViewModel.AddTabItem(fileList[i]); } ToolMethod.SetFileThumbImg(fileList[i]); } } Settings.Default.Save(); } } }