Более быстрый способ сохранить настройки пользовательского интерфейса - использовать систему Properties.Settings.Default. Что может быть хорошо с этим, это использовать привязку WPF к значению. Пример здесь . Настройки автоматически обновляются и загружаются.
<Window ...
xmlns:p="clr-namespace:UserSettings.Properties"
Height="{Binding Source={x:Static p:Settings.Default}, Path=Height, Mode=TwoWay}"
Width="{Binding Source={x:Static p:Settings.Default}, Path=Width, Mode=TwoWay}"
Left="{Binding Source={x:Static p:Settings.Default}, Path=Left, Mode=TwoWay}"
Top="{Binding Source={x:Static p:Settings.Default}, Path=Top, Mode=TwoWay}">
...
protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
{
Settings.Default.Save();
base.OnClosing(e);
}
Проблема в том, что если приложение большого размера, оно быстро становится беспорядком.
Другое решение (предложенное кем-то здесь) заключается в использовании пути ApplicationData для сохранения ваших собственных предпочтений в XML. Там вы можете создать свой собственный класс настроек и использовать XML-сериализатор для его сохранения. Такой подход позволяет выполнять миграцию с версий на версии. Будучи более мощным, этот метод требует немного больше кода.