private void Browser_LoadCompleted(object sender, NavigationEventArgs e) { LoaderImpl.Mask(this, null, () => { var timer = new System.Timers.Timer(); timer.Interval = 600; timer.Elapsed += (aa, bb) => { timer.Stop(); Dispatcher.Invoke(() => Real_Browser_LoadCompleted(sender, e)); }; timer.Start(); //System.Windows.Application.Current.Dispatcher.BeginInvoke(new System.Action(), DispatcherPriority.ContextIdle); }); }
private void Button_Click(object sender, RoutedEventArgs e) { if (sender == build1 || sender == build2) { var filelst = FileList; if (filelst == null) { return; } IList <FileModel> selist = null; if (sender == build1) { selist = filelst.Where(f => f.ISCHECKED).ToList(); if (selist.Count == 0) { if (MessageBox.Show($"No file is checked, process all ({filelst.Count} Items)?", "CONFIRM", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.No) { return; } selist = filelst; } } else if (filelstbox.SelectedItem != null) { selist = new List <FileModel>() { (FileModel)filelstbox.SelectedItem }; } if (selist == null || selist.Count == 0) { browser.Navigate("about:blank"); } else { LoaderImpl.Mask(this, null, () => { var timer = new System.Timers.Timer(); timer.Interval = 600; timer.Elapsed += (aa, bb) => { timer.Stop(); Stream stream = null; try { stream = File.Create("$__tmp.mhtml"); foreach (var fm in selist) { var bytes = System.IO.File.ReadAllBytes(fm.PATH); stream.Write(bytes, 0, bytes.Length); } stream.Flush(); stream.Seek(0, SeekOrigin.Begin); Dispatcher.Invoke(() => browser.NavigateToStream(stream)); m_stream = stream; } catch { LoaderImpl.Unmask(); if (stream != null) { stream.Close(); } } }; timer.Start(); //System.Windows.Application.Current.Dispatcher.BeginInvoke(new System.Action(), DispatcherPriority.ContextIdle); }); } return; } if (sender == beautify) { Browser_LoadCompleted(browser, null); return; } if (sender == exit) { LoaderImpl.NoSeeAlso = !sAlso.IsChecked.GetValueOrDefault(); LoaderImpl.NoFooter = !sFooter.IsChecked.GetValueOrDefault(); LoaderImpl.NoRelated = !sRelated.IsChecked.GetValueOrDefault(); LoaderImpl.AutoBeautify = pAuto.IsChecked.GetValueOrDefault(); LoaderImpl.SaveSettings(); this.Close(); return; } if (sender == top) { var sel = (FileModel)filelstbox.SelectedItem; if (sel == null) { return; } FileList.Remove(sel); FileList.Insert(0, sel); filelstbox.SelectedItem = sel; filelstbox.ScrollIntoView(sel); return; } if (sender == btm) { var sel = (FileModel)filelstbox.SelectedItem; if (sel == null) { return; } FileList.Remove(sel); FileList.Add(sel); filelstbox.SelectedItem = sel; filelstbox.ScrollIntoView(sel); return; } if (sender == up1) { var sel = (FileModel)filelstbox.SelectedItem; var seli = filelstbox.SelectedIndex; if (sel == null) { return; } FileList.RemoveAt(seli); FileList.Insert(Math.Max(0, seli - 1), sel); filelstbox.SelectedItem = sel; filelstbox.ScrollIntoView(sel); return; } if (sender == dw1) { var sel = (FileModel)filelstbox.SelectedItem; var seli = filelstbox.SelectedIndex; if (sel == null) { return; } FileList.RemoveAt(seli); FileList.Insert(Math.Min(FileList.Count, seli + 1), sel); filelstbox.SelectedItem = sel; filelstbox.ScrollIntoView(sel); return; } if (sender == sav) { if (FileList == null) { return; } if (MessageBox.Show("Do you want to save this order?", "CONFIRM", MessageBoxButton.OKCancel, MessageBoxImage.Question) != MessageBoxResult.OK) { return; } var sel = (FileModel)filelstbox.SelectedItem; int i = 0; foreach (var f in FileList) { var of = f.PATH; i++; int k = f.FILE.IndexOf('#'); f.FILE = i.ToString("0000") + "#" + f.FILE.Substring(k + 1); f.PATH = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(f.PATH), f.FILE); System.IO.File.Move(of, f.PATH); } var lst = FileList; FileList = null; FileList = lst; filelstbox.SelectedItem = sel; return; } }