public RecordingAndPlaybackControl() { DataContext = this; InitializeComponent(); if (DesignerProperties.GetIsInDesignMode(this)) { this.actionService = new DesignerActionService(); this.appSettingService = new DesignerAppSettingService(); AudioPlaybackService = new DesignerAudioPlaybackService(); AudioRecordingService = new DesignerAudioRecordingService(); SelectedFileService = new DesignerSelectedFileService(); } else { // ToDo: Evil Hack to have the cake (see actual design in design mode) and eat it too (have different styles at runtime) this.Resources = null; this.actionService = UnityHandler.UnityContainer.Resolve <IActionService>(); this.appSettingService = UnityHandler.UnityContainer.Resolve <IAppSettingService>(); AudioPlaybackService = UnityHandler.UnityContainer.Resolve <IAudioPlaybackService>(); AudioRecordingService = UnityHandler.UnityContainer.Resolve <IAudioRecordingService>(); SelectedFileService = UnityHandler.UnityContainer.Resolve <ISelectedFileService>(); AudioPlaybackService.PropertyChanged += AudioPlaybackService_PropertyChanged; AudioRecordingService.PropertyChanged += AudioRecordingService_PropertyChanged; } }
public MainWindow() { DataContext = this; InitializeComponent(); if (DesignerProperties.GetIsInDesignMode(this)) { this.actionService = new DesignerActionService(); this.hotkeyService = new DesignerApplicationHotkeyService(); SelectedFileService = new DesignerSelectedFileService(); SettingService = new DesignerAppSettingService(); AudioRecordingService = new DesignerAudioRecordingService(); AudioPlaybackService = new DesignerAudioPlaybackService(); return; } else { // ToDo: Evil Hack to have the cake (see actual design in design mode) and eat it too (have different styles at runtime) this.Resources = null; this.actionService = UnityHandler.UnityContainer.Resolve <IActionService>(); //actionService.ChangeTheme("Simple_Black"); //this.InvalidateVisual(); this.hotkeyService = UnityHandler.UnityContainer.Resolve <IApplicationHotkeyService>(); SelectedFileService = UnityHandler.UnityContainer.Resolve <ISelectedFileService>(); SettingService = UnityHandler.UnityContainer.Resolve <IAppSettingService>(); SettingService.PropertyChanged += SettingService_PropertyChanged; AudioRecordingService = UnityHandler.UnityContainer.Resolve <IAudioRecordingService>(); AudioRecordingService.PropertyChanged += AudioRecordingService_PropertyChanged; AudioPlaybackService = UnityHandler.UnityContainer.Resolve <IAudioPlaybackService>(); AudioPlaybackService.PropertyChanged += AudioPlaybackService_PropertyChanged; // try restore last window positon if (!SettingService.MainWindowLeftX.HasValue || !SettingService.MainWindowTopY.HasValue) { this.Left = (SystemParameters.PrimaryScreenWidth / 2) - (this.Width / 2); this.Top = (SystemParameters.PrimaryScreenHeight / 2) - (this.Height / 2); } else { this.Left = SettingService.MainWindowLeftX.Value; this.Top = SettingService.MainWindowTopY.Value; } this.KeyDown += Window_KeyDown; this.MouseRightButtonUp += MainWindow_MouseRightButtonUp; trayIcon = new System.Windows.Forms.NotifyIcon { Icon = System.Drawing.Icon.ExtractAssociatedIcon(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName), Visible = true }; trayIcon.Click += new EventHandler(TrayIcon_Click); trayIcon.DoubleClick += new EventHandler(TrayIconMenu_DoubleClick); // initialize control visibility (is being toggled via SettingService_PropertyChanged - binding with bool to visibility converter did not update) OutputPathControl.Visibility = SettingService.OutputPathControlVisible ? Visibility.Visible : Visibility.Collapsed; OutputPathControlSpacer.Visibility = SettingService.OutputPathControlVisible ? Visibility.Visible : Visibility.Collapsed; SelectedFileControl.Visibility = SettingService.SelectedFileControlVisible ? Visibility.Visible : Visibility.Collapsed; SelectedFileControlSpacer.Visibility = SettingService.SelectedFileControlVisible ? Visibility.Visible : Visibility.Collapsed; RecordingTimerControl.Visibility = SettingService.RecordingTimerControlVisible ? Visibility.Visible : Visibility.Collapsed; RecordingTimerControlSpacer.Visibility = SettingService.RecordingTimerControlVisible ? Visibility.Visible : Visibility.Collapsed; this.Topmost = SettingService.WindowAlwaysOnTop; // hacky way to have a window for NotificationManager // is this really needed? (window is loaded into memory even if running in background) this.Show(); if (SettingService.MinimizedToTray) { SwitchToBackgroundMode(); } SelectedFileService.SelectLatestFile(); //else //{ // SwitchToForegroundMode(); //} } }