Dziś będzie o Application Settings w WPF. Niestety nie znalazłem nic w tym temacie ciekawszego niż to co dostępne już jest w WinForms. Jednak dla spójności naszych tematów omówmy i ten.

Design Time

Ustawienia możemy definiować za pomocą wygodnego designera zawartego w VisualStudio.

<userSettings>

    <WpfExamDemo.Properties.Settings>

        <setting name=FullScreen serializeAs=String>

            <value>Truevalue>

        setting>

    WpfExamDemo.Properties.Settings>

userSettings>

<applicationSettings>

    <WpfExamDemo.Properties.Settings>

        <setting name=AllowClosing serializeAs=String>

            <value>Falsevalue>

        setting>

    WpfExamDemo.Properties.Settings>

applicationSettings>

Ustawienia możemy podzielić na użytkownika jak i aplikacji, które to będą współdzielone przez wszystkich użytkowników.

RunTime

Zmienne, które zdefiniujemy przy pomocy VS, dostajemy ładnie jako właściwości w klasie Settings. Wystarczy więc napisać:

var isFullScreen = Settings.Default.FullScreen;

możemy też skorzystać ze słabo typowalnej wersji:

var isFullScreen = Settings.Default[“FullScreen”];

Aby zapisać zmiany w ustawieniach należy zawołać metodę Save na obiekcie Settings:

Settings.Default.Save();

Dodatkowo udostępniane jest kilka zdarzeń za pomocą, których możemy wpłynąć na wczytywanie i zapisywanie parametrów:

Settings.Default.SettingsLoaded += Default_SettingsLoaded;

Settings.Default.SettingsSaving += Default_SettingsSaving;

Co ciekawe SettingsSaving pozwala zablokować wczytywanie ustawień

void Default_SettingsSaving(object sender, System.ComponentModel.CancelEventArgs e)

{

    e.Cancel = true;

Następnym tematem będzie – Manage application responsiveness – ostatni z tematu Creating WPF application.