public MainWindow() { InitializeComponent(); Title = $"Keyboord usage v{AppConstants.CurrentVersion} by Kasper B. Graversen"; var args = new CommandLineParser().ParseCommandLine(); var style = (Style)FindResource("InformButton"); configurationRepository = new ConfigurationRepository(new UserStateStandardConfiguraion(args)); keyboards = configurationRepository.GetKeyboards(style); state = configurationRepository.LoadUserState(); var userState = new DailySessionDecorator(state); var counter = new KeysCounter(userState); keyPressController = new KeyPressController( () => WindowState == WindowState.Minimized, x => CurrentKey.Content = x, x => KeyHistory.Text = x, x => ProductiveRatio.Content = x.ToString() + "%", x => DestructiveRatio.Content = x.ToString() + "%", x => NavigationRatio.Content = x.ToString() + "%", x => MetaRatio.Content = x.ToString() + "%", counter, null); listener = new KeyboardListener(counter, keyPressController); listener.Subscribe(); ResizeWindow(state); KeyboardChooser.ItemsSource = keyboards.Select(x => x.Name); KeyboardChooser.SelectedIndex = state.GetGuiConfiguration().SelectedKeyboardIndex; keyPressController.ForceRepaint(); }