本主題涵蓋你需要知道的資訊,如何開始在 Universal Windows Platform (UWP) 應用程式中載入與儲存設定。 引進主要 API,並提供連結以協助您深入瞭解。
使用設定來記住應用程式的使用者可自訂的面向。 例如,新聞閱讀程式可以使用應用程式設定來儲存要顯示的新聞來源,以及用於閱讀文章的字型。
我們將查看程式代碼來儲存和載入應用程式設定。
您需要知道什麼
使用應用程式設定來儲存設定數據,例如使用者喜好設定和應用程式狀態。
下列數據類型可以搭配設定使用:整數、雙精度浮點數、chars、字串、Points、DateTimes 等等。 你也可以儲存 ApplicationDataCompositeValue 類別的實例,這在多個設定需要視為一個單位時非常有用。 例如,在應用程式的閱讀窗格中顯示文字的字型名稱和點大小,應該儲存/還原為單一單位。 這可防止一個設定因為並行存取而與另一個設定不同步,例如主要程式與背景工作之間的存取。
以下是您需要瞭解以儲存或載入應用程式設定的主要 API:
- Windows。Storage.ApplicationData.Current.LocalSettings 從本地應用程式資料儲存庫取得應用程式設定容器。 這裡儲存的設定會保留在裝置上,並且能在應用程式更新時穩定保存。
- Windows。Storage.ApplicationData.Current.RoamingSettings 從漫遊應用程式資料儲存庫取得應用程式設定容器。 這裡儲存的設定已不再漫遊(從 Windows 11 起),但設定商店仍然可用。 RoamingSettings 的推薦替換是 Azure App 服務。 Azure App 服務 支援廣泛、文件豐富、可靠,並支援跨平台/跨生態系統場景,如 iOS、Android 及網頁。
- Windows。Storage.ApplicationDataContainer 是一個容器,將應用程式設定以鍵值對表示。 使用此類別來建立和擷取設定值。
- Windows·Storage·ApplicationDataCompositeValue 代表多個應用程式設定,應作為一個單元來序列化。 當一個設定不應該獨立於另一個設定更新時,這會很有用。
這很重要
RoamingSettings 可能無法在 Microsoft Store 應用程式更新中持續存在。 對於必須經應用程式更新保留的設定,請改用 LocalSettings。
儲存應用程式設定
在此簡介中,我們將著重於兩個簡單的案例:儲存和載入簡單的應用程式設定,以及儲存和載入複合字型/字型大小設定。
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;
儲存設定時,首先要取得一個用於本機設定數據存儲的 ApplicationDataContainer,然後使用 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"];
}
先取得一個 ApplicationDataContainer 實例,並用 Windows.Storage.ApplicationData.Current.LocalSettings 載入本地設定資料儲存庫。 然後使用它來擷取索引鍵/值組。 如果數據不存在,您將取得 Null 物件。 在 C# 中,這表示如果設定不存在,localValue 將是 null。
遵循類似的模式載入複合設定。 從本機設定數據存放區存取索引鍵/值組。 如果資料不存在,您將獲得一個空值的 ApplicationDataContainer。 這就是為什麼在上述範例程式碼中進行 if (composite != null) 檢查的原因。
有用的 API 和檔
以下是 API 和其他實用檔案的快速摘要,可協助您開始儲存和載入應用程式設定。
有用的 API
| API | 說明 |
|---|---|
| ApplicationData.LocalSettings | 從本機應用程式數據存放區取得應用程式設定容器。 |
| 應用程式資料的漫遊設定 (ApplicationData.RoamingSettings) | 從漫遊應用程式數據存放區取得應用程式設定容器。 |
| ApplicationDataContainer | 應用程式設定的容器,可支援建立、刪除、列舉及周遊容器階層。 |
| Windows.UI.ApplicationSettings 命名空間 | 提供類別,讓你用來定義應用程式設定,這些設定會出現在 Windows shell 的窗格中。 |
有用的檔
| 主題 | 說明 |
|---|---|
| 應用程式設定的指導方針 | 說明建立和顯示應用程式設定的最佳做法。 |
| 儲存和擷取設定和其他應用程式數據 | 用於儲存和擷取設定的逐步解說。 |
實用的程式代碼範例
| 程式代碼範例 | 說明 |
|---|---|
| 應用程式數據範例 | 案例 2-4 著重於設定 |