public ShellForm() { InitializeComponent(); Text = Properties.Settings.Default.ApplicationFriendlyName; _logUC = new LogUC { Padding = _defaultContentAreaPadding, Dock = DockStyle.Fill }; AppLogger.SetTargetInvoking(_logUC.UpdateLogs); _logUC.UpdateLogs(AppLogger.GetLogs()); // Load logs that may have been written before delegate could be set. MainContentPanel.Controls.Add(new IntroductionUC { Padding = _defaultContentAreaPadding, Dock = DockStyle.Fill }); }
public MainWindow() { InitializeComponent(); ////Application Icon for tray. TrayMenu = Resources["TrayMenu"] as System.Windows.Controls.ContextMenu; ni = new NotifyIcon(); string path = AppDomain.CurrentDomain.BaseDirectory; ni.Icon = new System.Drawing.Icon(@"Source\Main.ico"); ni.Visible = true; ni.DoubleClick += delegate(object sender, EventArgs args) { if ((args as MouseEventArgs).Button == MouseButtons.Left) { // по левой кнопке показываем или прячем окно this.Show(); this.WindowState = WindowState.Normal; } }; ni.Click += delegate(object sender, EventArgs args) { if ((args as MouseEventArgs).Button == MouseButtons.Right) { // по правой кнопке (и всем остальным) показываем меню TrayMenu.IsOpen = true; Activate(); // нужно отдать окну фокус, см. ниже } }; //Creating User Interfaces opcSettingsUC = new OPCServerSettingsUC { isEnableWritingChecked = true }; dataAccessSettingsUC = new DataAccessSettingsUC(); parametersUC = new ParametersUC(); serverSynchronizationUC = new ServerSynchronizationUC(); logUC = new LogUC(); //При запуске приложения проверяется роль хоста (чтение IP из БД). Если при старте компьютера //приложение стучится к БД раньше, чем запустится SQL сервер, будет произведена попытка прочитать роль еще раз //(кол-во попыток - в теле конструкции 'for') Task.Run(() => { for (int i = 0; i < 5; i++) { controllerRole = DefineHostRole(); Dispatcher.Invoke(() => serverSynchronizationUC.ServerSyncRoleTextBox.Text = controllerRole.ToString()); if (controllerRole != HostRole.ERROR) { break; } WriteToLog("Attempt to define Server role. Reading from DataBase failed!"); Thread.Sleep(2000); } }).ContinueWith((o) => { //Создаем класс-контейнер для хранения параметров для передачи в контроллер перед началом расчетов controllerParameters = new ControllerParameters { isEnableWriting = opcSettingsUC.isEnableWritingChecked, ControllerRole = this.controllerRole, OpcServerName = Properties.Settings.Default.OPCServerName, OpcServerSubstring = Properties.Settings.Default.OPCServerSubString, SingleTagNamesForRW = serverSynchronizationUC.singleTagNamesForRW }; //Start Calculations after launching if (controllerRole != HostRole.ERROR) { Task.Run(async() => await StartOperation()); } else { WriteToLog("Невозможно определить хост-роль сервера"); } }); }