private void OnDrop(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) { // Note that you can have more than one file. string[] files = (string[])e.Data.GetData(DataFormats.FileDrop); foreach (string file in files) { FileAuthenticationView fav = new FileAuthenticationView(); FileAuthenticationViewModel favm = (FileAuthenticationViewModel)fav.DataContext; favm.Path = file; favm.Encrypt = !string.Equals(Path.GetExtension(file), ".ivy", StringComparison.InvariantCultureIgnoreCase); fav.Show(); } } }
protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); if (e.Args.Length > 0) { XmlSettingsService.Init(true); IEnumerable <string> args = e.Args; if (e.Args[0].Equals("-encrypt", StringComparison.InvariantCultureIgnoreCase)) { args = args.Skip(1); foreach (string arg in args) { FileAuthenticationView fav = new FileAuthenticationView(); FileAuthenticationViewModel favm = (FileAuthenticationViewModel)fav.DataContext; favm.Path = arg; fav.ShowDialog(); } Shutdown(); } else { if (e.Args[0].Equals("-decrypt", StringComparison.InvariantCultureIgnoreCase)) { args = args.Skip(1); } foreach (string arg in args) { if (!File.Exists(arg)) { continue; } FileAuthenticationView fav = new FileAuthenticationView(); FileAuthenticationViewModel favm = (FileAuthenticationViewModel)fav.DataContext; favm.Path = arg; fav.ShowDialog(); } Shutdown(); } return; } if (!IsDesigner) { ips = ManagedProcessService.Default; XmlSettingsService.Init(false); iss = XmlSettingsService.Default; IvyLockSettings ils = iss.OfType <IvyLockSettings>().First(); switch (ils.Theme) { case Theme.Light: Resources.MergedDictionaries.Clear(); Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = new Uri("pack://application:,,,/IvyLock;component/Content/Theme.Light.xaml") }); break; } ips.ProcessChanged += ProcessChanged; MainWindow = new SettingsView(); MainWindow.Show(); MainWindow.Activate(); ni = new WF.NotifyIcon(); ni.Click += (s, e1) => { MainWindow?.Show(); MainWindow?.Activate(); }; ni.Icon = System.Drawing.Icon.ExtractAssociatedIcon(Assembly.GetEntryAssembly().Location); ni.ContextMenu = new WF.ContextMenu(); ni.ContextMenu.MenuItems.Add("Exit", (s, e2) => { SettingsViewModel svm = MainWindow.DataContext as SettingsViewModel; svm.PropertyChanged += (s2, e3) => { if (e3.PropertyName == "CurrentScreen" && svm.CurrentScreen == ViewModel.Screen.Main) { Shutdown(); } }; svm.CurrentScreen = ViewModel.Screen.EnterPassword; MainWindow.Show(); MainWindow.Activate(); }); ni.Visible = true; } }