using HMI.Base; using HMI.Core.Api; using HMI.Core.Entity; using HMI.Core.Setting; using HMI.Core.Util; using HMI.UI.Util; using Panuon.WPF.UI; using System; using System.ComponentModel; using System.IO; using System.Windows; using System.Windows.Controls; using System.Windows.Media.Imaging; namespace WPFProject { /// /// PanuonWindow.xaml 的交互逻辑 /// public partial class PanuonWindow : WindowX, IPluginContainer { public PanuonWindow() { this.Loaded += PanuonWindow_Loaded; } private UserInfo currentUser; public UserInfo CurrentUser { get => currentUser; set { Set(ref currentUser, value); } } private void PanuonWindow_Loaded(object sender, RoutedEventArgs e) { DataContext = this; RefrshConfig(); InitializeComponent(); userMenu.Header = this.lang("App.Welcome", UserInfo.User.Name); ShowMenu = true; Application.Current.MainWindow = this; SystemSetting.SystemSettingChanged += SystemSetting_SystemSettingChanged; } private void RefrshConfig() { WindowTitle = SystemSetting.Instance.WindowTitle; try { WindowLogo = new BitmapImage(new Uri(Path.Combine(PathHelper.IconFolder, SystemSetting.Instance.LogoPath))); } catch (Exception ex) { WindowLogo = null; } } private string windowTitle; public string WindowTitle { get { return windowTitle; } set { Set(ref windowTitle, value); } } private BitmapImage windowLogo; public BitmapImage WindowLogo { get { return windowLogo; } set { Set(ref windowLogo, value); } } private bool showMenu; public event CancelEventHandler OnCloseEvent; public event EventHandler DoCloseEvent; public event EventHandler LoadComplateEvent; public bool ShowMenu { get { return showMenu; } set { Set(ref showMenu, value); menuTab.ChangeItemVisibility(value); } } private void Button_Click_2(object sender, RoutedEventArgs e) { ShowMenu = !ShowMenu; //Button btn = (Button)sender; //double temp = btn.RenderTransform.Value.Determinant; //btn.RenderTransformOrigin = new Point(0.5, 0.5); //ScaleTransform verticalFlipTransform = new ScaleTransform(1, temp * -1); //btn.RenderTransform = verticalFlipTransform; //menuTab.ChangeItemVisibility(); } private void SystemSetting_SystemSettingChanged(object sender, SystemSetting e) { RefrshConfig(); } protected override void OnClosing(CancelEventArgs e) { OnCloseEvent?.Invoke(this, e); base.OnClosing(e); } protected override void OnClosed(EventArgs e) { DoCloseEvent?.Invoke(this, e); base.OnClosed(e); } private void MenuItem_Click(object sender, RoutedEventArgs e) {MenuItem mi = sender as MenuItem; switch (mi.Name) { case "MiLogout": Logout(); break; case "MiRestart": RestartApp(); break; default: break; } } private void Logout() { if (MsgBoxHelper.WarnMessage(this, this.lang("App.MakeSureLogout")) == MessageBoxResult.OK) { string path = Path.Combine(PathHelper.DatabaseFolder, "user.bin"); if (File.Exists(path)) { File.Delete(path); } this.Closed -= window_Closed; this.Close(); PluginLoader.Reset(); Login login = new Login(); login.Show(); } } private void RestartApp() { if (MsgBoxHelper.WarnMessage(this, this.lang("App.MakeSureRestartApp")) == MessageBoxResult.OK) { Application.Current.Exit += Current_Exit; this.Close(); } } private void Current_Exit(object sender, ExitEventArgs e) { System.Windows.Forms.Application.Restart(); } private void window_Closed(object sender, EventArgs e) { Application.Current.Shutdown(); } //private void BaseWindow_Loaded(object sender, RoutedEventArgs e) //{ // var s = (Style)this.Resources["WindowButton"]; // Button button = new Button // { // Content = "\ue60e", // Style = (Style)this.Resources["WindowButton"] // }; // WindowChrome.SetIsHitTestVisibleInChrome(button, true); // button.Click += Button_Click_2; // this.InsertButton(button, 0); //} } }