public static void SaveSettings(WpfSettings settings)
 {
     using (var stream = File.Open(SettingsPath, FileMode.Create, FileAccess.Write, FileShare.None))
     {
         new XmlSerializer(typeof(WpfSettings)).Serialize(stream, settings);
     }
 }
 /// <summary>
 /// Fixes weird behavior caused by multi-monitor setups losing a monitor.
 /// </summary>
 private static void FixWindowPostion(WpfSettings settings)
 {
     if (settings.MainWindowLeft >= SystemParameters.WorkArea.Right)
     {
         settings.MainWindowLeft = double.NaN;
     }
     if (settings.MainWindowTop <= 0)
     {
         settings.MainWindowTop = 0;
     }
 }
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            this.CheckInstall();
            this.Settings = SettingsHelper.LoadSettings();
            Locator.Register <ISettings>(this.Settings);

            if (UpdateChecker.CheckForUpdate(false))
            {
                Locator.Get <IDialogService>().ShowDialog(new UpdateWindowViewModel());
                return;
            }

            var vm   = new MainWindowViewModel();
            var view = new MainWindowView {
                DataContext = vm
            };

            this.MainWindow = view;
            vm.ConnectToStartupNetworks();
            this.MainWindow.Show();
        }