Speichern und Laden von Einstellungen in einer UWP-App

In diesem Thema erfahren Sie, was Sie wissen müssen, um mit dem Laden und Speichern von Einstellungen in einer App für die universelle Windows-Plattform (UWP) zu beginnen. Es werden die wichtigsten APIs vorgestellt, und Sie erhalten Links zu weiteren Informationen.

Verwenden Sie Einstellungen, um die vom Benutzer anpassbaren Aspekte Ihrer App zu speichern. Beispielsweise könnte ein Benutzer in einem Newsreader mithilfe von App-Einstellungen speichern, welche Nachrichtenquellen angezeigt werden sollen und welche Schriftart zum Lesen von Artikeln verwendet werden soll.

Sehen Sie sich nun den Code zum Speichern und Laden von Anwendungseinstellungen an.

Wissenswertes

Verwenden Sie App-Einstellungen, um Konfigurationsdaten wie Benutzereinstellungen und den App-Status zu speichern.

Die folgenden Datentypen können für Einstellungen verwendet werden: Integer, Double, Float, Char, String, Point, DateTime u. a. Sie können auch Instanzen der ApplicationDataCompositeValue-Klasse speichern, was nützlich ist, wenn mehrere Einstellungen als Einheit behandelt werden sollen. Beispielsweise sollten der Schriftartname und Schriftgrad für den Text im Lesebereich der App als eine Einheit gespeichert/wiederhergestellt werden. Dadurch wird verhindert, dass zwei Einstellungen aufgrund des gleichzeitigen Zugriffs nicht mehr ordnungsgemäß synchronisiert werden, z. B. zwischen Hauptprogramm und einer Hintergrundaufgabe.

Hier die wichtigsten APIs, die Sie zum Speichern oder Laden von App-Einstellungen benötigen:

  • Windows.Storage.ApplicationData.Current.LocalSettings ruft den Container für Anwendungseinstellungen aus dem lokalen App-Datenspeicher ab. Hier gespeicherte Einstellungen werden auf dem Gerät gespeichert.
  • Windows.Storage.ApplicationData.Current.RoamingSettings ruft den Container für Anwendungseinstellungen aus dem Roaming-App-Datenspeicher ab. Für die hier gespeicherten Einstellungen erfolgt kein Roaming mehr (ab Windows 11), aber der Einstellungsspeicher ist weiterhin verfügbar. Der empfohlene Ersatz für „RoamingSettings“ ist Azure App Service. Azure App Service wird umfassend unterstützt, ist gut dokumentiert, zuverlässig und unterstützt plattform-/ökosystemübergreifende Szenarien wie iOS, Android und Web.
  • Windows.Storage.ApplicationDataContainer ist ein Container, der App-Einstellungen als Schlüssel-Wert-Paare darstellt. Verwenden Sie diese Klasse zum Erstellen und Abrufen von Einstellungswerten.
  • Windows.Storage.ApplicationDataCompositeValue stellt mehrere App-Einstellungen dar, die als Einheit serialisiert werden sollten. Dies ist nützlich, wenn eine Einstellung nicht unabhängig von einer anderen aktualisiert werden soll.

Speichern von App-Einstellungen

In dieser Einführung konzentrieren wir uns auf zwei einfache Szenarien: Speichern und Laden einer einfachen App-Einstellung sowie Speichern und Laden einer aus Schriftart und Schriftgrad zusammengesetzten Einstellung.

ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;

// Save a setting locally on the device
localSettings.Values["test setting"] = "a device specific setting";

// Save a composite setting locally on the device
Windows.Storage.ApplicationDataCompositeValue composite = new Windows.Storage.ApplicationDataCompositeValue();
composite["Font"] = "Calibri";
composite["FontSize"] = 11;
localSettings.Values["FontInfo"] = composite;

Sie speichern eine Einstellung, indem Sie zuerst eine ApplicationDataContainer-Instanz für den lokalen Einstellungsdatenspeicher mit Windows.Storage.ApplicationData.Current.LocalSettings abrufen. Schlüssel-Wert-Wörterbuchpaare, die Sie dieser Instanz zuweisen, werden im lokalen Datenspeicher für Geräteeinstellungen gespeichert.

Im obigen Codeausschnitt werden in ApplicationDataCompositeValue mehrere Schlüssel-Wert-Paare gespeichert. Zusammengesetzte Werte sind nützlich, um sicherzustellen, dass mehrere zusammengehörende Einstellungen synchron bleiben. Beim Speichern von ApplicationDataCompositeValue werden die Werte als Einheit bzw. unteilbar gespeichert und geladen. Auf diese Weise wird sichergestellt, dass miteinander in Beziehung stehende Einstellungen synchron bleiben.

Laden von App-Einstellungen

ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;

// load a setting that is local to the device
String localValue = localSettings.Values["test setting"] as string;

// load a composite setting
Windows.Storage.ApplicationDataCompositeValue composite = (ApplicationDataCompositeValue)localSettings.Values["FontInfo"];
if (composite != null)
{
    String fontName = composite["Font"] as string;
    int fontSize = (int)composite["FontSize"];
}

Sie speichern eine Einstellung, indem Sie zuerst eine ApplicationDataContainer-Instanz für den lokalen Einstellungsdatenspeicher mit Windows.Storage.ApplicationData.Current.LocalSettings abrufen. Verwenden Sie diese dann zum Abrufen von Schlüssel-Wert-Paaren. Wenn die Daten nicht vorhanden sind, erhalten Sie ein NULL-Objekt. In C# bedeutet dies, dass localValue den Wert null aufweist, wenn die Einstellung nicht vorhanden ist.

Zusammengesetzte Einstellungen werden nach einem ähnlichen Muster geladen. Tastenkombination/Wert-Paare aus dem lokalen Einstellungsdatenspeicher. Wenn die Daten nicht vorhanden sind, erhalten Sie einen leeren Wert für ApplicationDataContainer. Daher enthält der obige Beispielcode die Überprüfung if (composite != null).

Nützliche APIs und Dokumente

Nachfolgend finden Sie eine kurze Zusammenfassung der APIs und anderer nützlicher Dokumentation, die Sie beim Speichern und Laden von App-Einstellungen unterstützen.

Nützliche APIs

API Beschreibung
ApplicationData.LocalSettings Ruft den Container der Anwendungseinstellungen aus dem lokalen App-Datenspeicher ab.
ApplicationData.RoamingSettings Ruft den Container der Anwendungseinstellungen aus dem Roaming-App-Datenspeicher ab.
ApplicationDataContainer Ein Container für App-Einstellungen, der das Erstellen, Löschen, Aufzählen und Durchlaufen der Containerhierarchie unterstützt.
Windows.UI.ApplicationSettings Namespace Stellt Klassen bereit, mit denen Sie die App-Einstellungen definieren, die im Einstellungsbereich der Windows-Shell angezeigt werden.

Nützliche Dokumentation

Thema Beschreibung
Richtlinien für App-Einstellungen Erläutert bewährte Methoden für das Erstellen und Anzeigen von App-Einstellungen.
Speichern und Abrufen von Einstellungen und anderen App-Daten Exemplarische Vorgehensweise zum Speichern und Abrufen von Einstellungen.

Nützliche Codebeispiele

Codebeispiel Beschreibung
Beispiel für Anwendungsdaten Die Szenarien 2–4 legen den Schwerpunkt auf Einstellungen.