| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227 |
- using System.Windows.Forms;
- using GalaSoft.MvvmLight.Ioc;
- using Muchinfo.MTPClient.Account.Views;
- using Muchinfo.MTPClient.Data.Enums;
- using Muchinfo.MTPClient.Infrastructure.Helpers;
- using Muchinfo.MTPClient.Infrastructure.MessageBox;
- using Muchinfo.MTPClient.Infrastructure.Utilities;
- using Muchinfo.MTPClient.IService;
- using Muchinfo.MTPClient.Resources;
- using Muchinfo.MTPClient.UI.Utilities;
- using Muchinfo.MTPClient.UI.ViewModels;
- using Muchinfo.PC.Common.Helpers;
- using Muchinfo.WPF.Controls.Windows;
- using System;
- using System.Windows;
- using System.Windows.Input;
- using System.Windows.Threading;
- using Muchinfo.MTPClient.Report.Views;
- using KeyEventArgs = System.Windows.Input.KeyEventArgs;
- using Microsoft.Web.WebView2.Core;
- namespace Muchinfo.MTPClient.UI.Views
- {
- /// <summary>
- /// MainView.xaml 的交互逻辑
- /// </summary>
- public partial class MainPage : Window
- {
- private Style windowMaxImageStyle;
- private Style windowImageStyle;
- public MainPage()
- {
- InitializeComponent();
- new WindowResizer(this,
- new WindowBorder(BorderPosition.TopLeft, TopLeftBorder),
- new WindowBorder(BorderPosition.Top, TopBorder),
- new WindowBorder(BorderPosition.TopRight, TopRightBorder),
- new WindowBorder(BorderPosition.Right, RightBorder),
- new WindowBorder(BorderPosition.BottomRight, BottomRightBorder),
- new WindowBorder(BorderPosition.Bottom, BottomBorder),
- new WindowBorder(BorderPosition.BottomLeft, BottomLeftBorder),
- new WindowBorder(BorderPosition.Left, LeftBorder));
- //避免窗口最大化时遮盖任务栏
- FullScreenManager.RepairWpfWindowFullScreenBehavior(this);
- // this.WindowState =WindowState.Maximized;
- this.SizeChanged += Home_SizeChanged;
- MessageRegister.Register(this);
- this.Loaded += Home_Loaded;
- this.KeyUp += MainPage_KeyUp;
- windowMaxImageStyle = ResourceHelper.GetFromeResource<Style>("WindowMaxImageStyle");
- windowImageStyle = ResourceHelper.GetFromeResource<Style>("WindowMaxImageStyle1");
- ////订阅行情
- //MessengerHelper.DefaultSend(string.Empty, MessengerTokens.QuoteSubscribe);
- MessengerHelper.DefaultRegister<string>(this, MessengerTokens.RegisterResourceChange, (e) =>
- {
- ////解决切换主题时菜单第一行没居中问题
- if (this.WindowState == WindowState.Maximized)
- {
- this.WindowState = WindowState.Minimized;
- this.WindowState = WindowState.Maximized;
- }
- });
- }
- private void MainPage_KeyUp(object sender, KeyEventArgs e)
- {
- var homeViewModel = this.DataContext as HomeViewModel;
- if (homeViewModel != null && homeViewModel.IsLockScreen)
- {
-
- if (e.Key == Key.Escape) homeViewModel.LoginOutCommand.Execute(null);
- }
- }
- private void Home_Loaded(object sender, RoutedEventArgs e)
- {
- var homeViewModel = this.DataContext as HomeViewModel;
- if (homeViewModel != null)
- {
- this.InputBindings.AddRange(homeViewModel.InitKeysCommand());
- }
- // 获取风管Web端
- InitializeAsync();
- }
- async void InitializeAsync()
- {
- // must create a data folder if running out of a secured folder that can't write like Program Files
- //var path = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "MarkdownMonster_Browser");
- //var env = await CoreWebView2Environment.CreateAsync(userDataFolder: path);
- // NOTE: this waits until the first page is navigated - then continues
- // executing the next line of code!
- await webView.EnsureCoreWebView2Async(null);
- // Optional: Map a folder from the Executable Folder to a virtual domain
- // NOTE: This requires a Canary preview currently (.720+)
- //webView.CoreWebView2.SetVirtualHostNameToFolderMapping(
- // "test.editor", "HtmlSample",
- // CoreWebView2HostResourceAccessKind.Allow);
- // You can then navigate the file from disk with the domain
- var loginID = UserManager.CurrentTradeAccount.LoginID;
- var pwd = UserManager.CurrentTradeAccount.Md5Password;
- var url = String.Format("{0}?ACCOUNT={1}&PASSWORD={2}", ApplicationParameter.ErmcpWebUrl, loginID, pwd);
- webView.Source = new Uri(url);
- //webView.CoreWebView2.OpenDevToolsWindow();
- }
- private void Home_SizeChanged(object sender, SizeChangedEventArgs e)
- {
- MaxImageButton.Style = WindowState == WindowState.Maximized ? windowMaxImageStyle : windowImageStyle;
- }
- #region 窗口操作
- private void Window_MouseDown(object sender, MouseButtonEventArgs e)
- {
- if (e.LeftButton == MouseButtonState.Pressed)
- {
- DragMove();
- }
- if (e.ClickCount == 2)
- {
- this.WindowState = this.WindowState == WindowState.Maximized ? WindowState.Normal : WindowState.Maximized;
- }
- }
- private void WinMin_OnClick(object sender, RoutedEventArgs e)
- {
- this.WindowState = WindowState.Minimized;
- }
- private void WinMax_OnClick(object sender, RoutedEventArgs e)
- {
- this.WindowState = this.WindowState == WindowState.Maximized ? WindowState.Normal : WindowState.Maximized;
- }
- private void WinClose_OnClick(object sender, RoutedEventArgs e)
- {
- ////保存布局及列表行情抬头
- var messageResult = MessageBoxHelper.ShowQuestion(this, Client_Resource.UI2014_IsOrNotExit, Client_Resource.UI2014_Tips);
- if (messageResult == MessageBoxResult.Yes)
- {
- //手动发送登出消息
- if (UserManager.IsAccountLogin)
- {
- MessengerHelper.DefaultSend(string.Empty, MessengerTokens.SaveLayout);
- var service = SimpleIoc.Default.GetInstance<ILoginService>();
- if (service != null) service.TradeAccountLogout(UserManager.CurrentTradeAccount);
- }
- this.Close();
- }
- }
- #endregion
- private void UIElement_OnIsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
- {
- var element = sender as FrameworkElement;
- if (e.NewValue.Equals(true) && element!=null)
- {
- this.Dispatcher.BeginInvoke(DispatcherPriority.Render, new Action(() =>
- {
- element.Focus();
-
- }));
- }
- }
- protected override void OnKeyUp(KeyEventArgs e)
- {
- base.OnKeyUp(e);
- var homeViewModel = this.DataContext as HomeViewModel;
- if (homeViewModel != null && e.Key == Key.Tab && Keyboard.Modifiers == ModifierKeys.Control)
- {
- homeViewModel.KeyCommand.Execute(CommandFunc.Tab);
- }
- }
- private void TradeSet_OnClick(object sender, RoutedEventArgs e)
- {
- var tradeSet = new TradeParamSetView()
- {
- Owner = System.Windows.Application.Current.MainWindow,
- WindowStartupLocation = WindowStartupLocation.CenterOwner
- };
- tradeSet.ShowDialog();
- }
- private void LockScreenBGGrid_OnKeyUp(object sender, KeyEventArgs e)
- {
- var homeViewModel = this.DataContext as HomeViewModel;
- if (homeViewModel != null && KeyGrid.IsKeyboardFocusWithin && e.Key == Key.Enter && homeViewModel.IsLockScreen)
- {
- homeViewModel.UnLockCommand.Execute(null);
- e.Handled = true;
- }
- }
- private void UIElement_OnKeyDown(object sender, KeyEventArgs e)
- {
-
- }
- }
- }
|