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.
Founder of Octal Solutions a .NET software house.
Passionate dev, blogger, occasionally speaker, one of the leaders of Wroc.NET user group. Microsoft MVP. Podcaster – Ostrapila.pl