次の方法で共有


UWP アプリで設定を保存して読み込む

このトピックでは、ユニバーサル Windows プラットフォーム (UWP) アプリでの設定の読み込みと保存を開始するために知っておくべきことを説明します。 メイン API が導入され、詳細情報に役立つリンクが提供されています。

設定を使用して、アプリのユーザーがカスタマイズできる側面を記憶します。 たとえば、ニュース リーダーは、アプリ設定を使用して、表示するニュース ソースと、記事の読み取りに使用するフォントを保存できます。

アプリ設定を保存して読み込むコードについて説明します。

知っておくべきこと

アプリ設定を使用して、ユーザー設定やアプリの状態などの構成データを格納します。

設定では、整数、doubles、floats、char、string、Points、DateTimes などのデータ型を使用できます。 ApplicationDataCompositeValue クラスのインスタンスを格納することもできます。これは、単位として扱う必要がある複数の設定がある場合に便利です。 たとえば、アプリの閲覧ウィンドウにテキストを表示するためのフォント名とポイント サイズは、1 つの単位として保存または復元する必要があります。 これにより、メイン プログラムとバックグラウンド タスクの間など、同時アクセスが原因で、一方の設定がもう一方の設定と同期されなくなります。

アプリ設定の保存または読み込みについて知る必要がある主な API を次に示します。

  • Windows.Storage.ApplicationData.Current.LocalSettings は、ローカル アプリ データ ストアからアプリケーション設定コンテナーを取得します。 ここに保存されている設定は、デバイスに保持されます。
  • Windows.Storage.ApplicationData.Current.RoamingSettings は、ローミング アプリ データ ストアからアプリケーション設定コンテナーを取得します。 ここに保存されている設定はローミングされなくなりました (Windows 11 の時点で)。ただし、設定ストアは引き続き使用できます。 RoamingSettings の推奨される代替は Azure App Service です。 Azure App Service は、広くサポートされ、十分に文書化され、信頼性が高く、iOS、Android、Web などのクロスプラットフォーム/エコシステム間のシナリオをサポートしています。
  • Windows.Storage.ApplicationDataContainer は、アプリ設定をキーと値のペアとして表すコンテナーです。 このクラスを使用して、設定値を作成および取得します。
  • Windows.Storage.ApplicationDataCompositeValue は、1 つのユニットとしてシリアル化する必要がある複数のアプリ設定を表します。 これは、ある設定を別の設定とは別に更新しない場合に便利です。

アプリの設定を保存する

この概要では、単純なアプリ設定の保存と読み込みと、複合フォント/フォント サイズ設定の保存と読み込みの 2 つの簡単なシナリオに焦点を当てます。

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;

まず、を使用してローカル設定データ ストアの Windows.Storage.ApplicationData.Current.LocalSettings を取得して、設定を保存します。 このインスタンスに割り当てたキーと値のディクショナリのペアは、ローカル デバイス設定データ ストアに保存されます。

上記のコード スニペットでは、 ApplicationDataCompositeValue に複数のキーと値のペアが格納されています。 複合値は、互いに同期しないようにする必要がある複数の設定がある場合に便利です。 ApplicationDataCompositeValue を保存すると、値が保存され、単位として、またはアトミックに読み込まれます。 この方法では、関連する設定は同期されなくなります。

アプリ設定を読み込む

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"];
}

最初に を使ってローカル設定データストアの Windows.Storage.ApplicationData.Current.LocalSettings のインスタンスを取得し、それから設定を読み込みます。 次に、キーと値のペアを取得するために使用します。 データが存在しない場合は、null オブジェクトが取得されます。 C# では、これは、設定が存在しない場合、 localValuenull されることを意味します。

同様のパターンに従って複合設定を読み込みます。 ローカル設定データ ストアからキーと値のペアにアクセスします。 データが存在しない場合は、null ApplicationDataContainer が取得されます。 そのため、上記のコード例に if (composite != null) チェックがあります。

便利な API とドキュメント

アプリ設定の保存と読み込みを開始するのに役立つ API とその他の便利なドキュメントの概要を次に示します。

便利な API

API(アプリケーション・プログラミング・インターフェース) 説明
ApplicationData.LocalSettings の ローカル アプリ データ ストアからアプリケーション設定コンテナーを取得します。
ApplicationData.RoamingSettings(アプリケーションデータ・ローミング設定) ローミング アプリ データ ストアからアプリケーション設定コンテナーを取得します。
ApplicationDataContainer コンテナー階層の作成、削除、列挙、および走査をサポートするアプリ設定用のコンテナー。
Windows.UI.ApplicationSettings 名前空間 Windows シェルの設定ウィンドウに表示されるアプリ設定の定義に使用するクラスを提供します。

役に立つドキュメント

トピック 説明
アプリの設定 ガイドライン アプリ設定を作成して表示するためのベスト プラクティスについて説明します。
設定とその他のアプリ データを格納および取得する 設定を保存および取得するためのチュートリアル。

便利なコード サンプル

コード サンプル 説明
アプリケーション データのサンプル シナリオ 2 から 4 の設定に重点を置く