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();
}
}
}