方法 : アプリケーション スコープのリソース ディクショナリを使用する
更新 : 2007 年 11 月
この例では、アプリケーション スコープのカスタム リソース ディクショナリを使用する方法を示します。
使用例
Application は、共有リソースのアプリケーション スコープのストアである Resources を公開します。既定では、Resources は、ResourceDictionary 型のインスタンスで初期化されます。このインスタンスは、Resources プロパティを使用してアプリケーション スコープのプロパティを取得および設定する場合に使用します (「方法 : アプリケーション スコープのリソースを取得および設定する」を参照してください)。
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 を使用するときに注意すべき点が 2 つあります。まず、ディクショナリのキーがオブジェクトであるため、プロパティ値を設定したり取得したりするときには、まったく同じオブジェクト インスタンスを使用する必要があります (文字列を使用する場合、キーは大文字と小文字を区別します)。2 つ目に、ディクショナリの値がオブジェクトであるため、プロパティ値を取得するときにその値を目的の型に変換する必要があります。