123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- using CefSharp;
- using CefSharp.Wpf;
- using System;
- using System.Diagnostics;
- using System.Globalization;
- using System.IO;
- using System.Windows;
- namespace SonopostSearchTool
- {
-
-
-
- public partial class MainWindow : Window
- {
- private bool _restoreIfMove = false;
- private MainViewModel _viewModedl;
- public MainWindow()
- {
- InitializeComponent();
-
- _viewModedl = new MainViewModel();
- DataContext = _viewModedl;
- Loaded += OnLoaded;
- Browser.FrameLoadStart += OnFrameLoadedStart;
- Browser.FrameLoadEnd += OnFrameLoadedEnd;
- Browser.LoadError += OnLoadedError;
- }
-
- private void OnFrameLoadedStart(object sender, FrameLoadStartEventArgs e)
- {
- if(e.Url != "about:blank")
- {
- _viewModedl.Status = string.Format(TranslateHelper.Translate("Connecting"), e.Url);
- }
- }
- private void OnFrameLoadedEnd(object sender, FrameLoadEndEventArgs e)
- {
- var isSuccess = e.HttpStatusCode == 200;
- if(isSuccess)
- {
- var currentLanguage = CultureInfo.InstalledUICulture.Name.ToLower() == "zh-cn" ?"Chinese":"English";
- var chrom = sender as ChromiumWebBrowser;
- chrom?.ExecuteScriptAsync($"chgLang(\'{currentLanguage}\');fullHight();");
- _viewModedl.Status = string.Format(TranslateHelper.Translate("Connected"), e.Url);
- }
- else
- {
- if(e.Url != "about:blank")
- {
- _viewModedl.Status = TranslateHelper.Translate("ConnectError");
- }
- }
- }
- private void OnLoadedError(object sender, LoadErrorEventArgs e)
- {
- _viewModedl.Status = TranslateHelper.Translate("ConnectError");
- }
- private void OnLoaded(object sender, RoutedEventArgs routedEventArgs)
- {
- _viewModedl?.RefreshCommand.Execute(null);
- Header.MouseLeftButtonDown += (s, e) =>
- {
- if (e.ClickCount == 2)
- {
- if (ResizeMode == ResizeMode.CanResize)
- {
- if (WindowState == WindowState.Normal)
- {
- WindowState = WindowState.Maximized;
- }
- else if (WindowState == WindowState.Maximized)
- {
- WindowState = WindowState.Normal;
- }
- }
- }
- else if (WindowState == WindowState.Maximized)
- {
- _restoreIfMove = true;
- }
- else
- {
- DragMove();
- }
- };
- Header.MouseLeftButtonUp += (s, e) =>
- {
- _restoreIfMove = false;
- };
- Header.MouseMove += (s, e) =>
- {
- if (_restoreIfMove)
- {
- try
- {
- _restoreIfMove = false;
- var point = PointToScreen(e.MouseDevice.GetPosition(this));
- WindowState = WindowState.Normal;
- Left = point.X - RestoreBounds.Width * 0.5;
- Top = point.Y;
- DragMove();
- }
- catch (Exception)
- {
- }
- }
- };
- }
- public virtual void OnMinimumClick(object sender, RoutedEventArgs e)
- {
- WindowState = WindowState.Minimized;
- }
- public void OnMaximumClick(object sender, RoutedEventArgs e)
- {
- WindowState = WindowState.Maximized == WindowState ? WindowState.Normal : WindowState.Maximized;
- }
- internal void OnCloseClick(object sender, RoutedEventArgs e)
- {
- Process.GetCurrentProcess().Kill();
- }
- }
- }
|