更新:2007 年 11 月
這個範例顯示如何使用應用程式範圍的自訂資源字典。
範例
Application 針對共用資源公開 (Expose) 了應用程式範圍的存放區:Resources。Resources 預設是以 ResourceDictionary 型別的執行個體初始化。當您使用 Resources 屬性取得及設定應用程式範圍的屬性時,會使用這個執行個體 (請參閱 HOW TO:取得和設定應用程式範圍的資源)。
如果要用 Resources 設定的資源不止一個,您可以改為使用自訂資源字典來存放這些資源,然後將 Resources 設為這個字典。使用標記宣告自訂的資源字典,像這樣:
<ResourceDictionary
xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml" >
<SolidColorBrush x:Key="StandardSolidColorBrush" Color="White" />
<LinearGradientBrush x:Key="StandardLinearGradientBrush" StartPoint="0.0,0.0" EndPoint="1.0,1.0">
<LinearGradientBrush.GradientStops>
<GradientStop Color="White" Offset="0" />
<GradientStop Color="Black" Offset="1" />
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</ResourceDictionary>
使用 Resources 交換整個資源字典,可以讓您支援應用程式範圍的佈景主題,因為所有佈景主題都封裝在單一資源字典中。請參閱<設定了佈景主題之應用程式的範例>。
若要從 Resources 公開的資源字典取得應用程式範圍資源 (不論是由 Application 或您建立),都需要像這樣的程式碼:
// Get an application-scope resource
Brush whiteBrush = (Brush)Application.Current.Resources["ApplicationScopeResource"];
使用 Resources 時,需要進行兩項考量。首先,字典 key 是個物件,所以在設定和取得屬性值時,您必須使用完全相同的物件執行個體 (請注意,使用字串時索引鍵是區分大小寫的)。其次,字典 value 是個物件,所以在取得屬性值時,您必須將這個值轉換為所需的型別。