Application.Resources プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
スタイルやブラシなど、アプリケーション スコープ リソースのコレクションを取得または設定します。
public:
property System::Windows::ResourceDictionary ^ Resources { System::Windows::ResourceDictionary ^ get(); void set(System::Windows::ResourceDictionary ^ value); };
public System.Windows.ResourceDictionary Resources { get; set; }
[System.Windows.Markup.Ambient]
public System.Windows.ResourceDictionary Resources { get; set; }
member this.Resources : System.Windows.ResourceDictionary with get, set
[<System.Windows.Markup.Ambient>]
member this.Resources : System.Windows.ResourceDictionary with get, set
Public Property Resources As ResourceDictionary
プロパティ値
0 個以上のアプリケーション スコープ リソースが格納された ResourceDictionary オブジェクト。
- 属性
例
この例では、XAML をアプリケーション スコープ リソースと共に使用して、一貫した外観を作成する方法を示します。 最初の例は App.xaml です。2 つ目は MainWindow.xaml です。
<Application
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml"
>
<Application.Resources>
<SolidColorBrush x:Key="BackgroundColor" Color="Yellow"></SolidColorBrush>
</Application.Resources>
</Application>
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="ApplicationResourcesSnippetSample_XAML"
Height="300"
Width="300"
Background="{StaticResource BackgroundColor}"
>
<Grid>
<!-- Additional XAML. -->
</Grid>
</Window>
次の例は、コードと XAML (C# WPF プロジェクトの App.xaml ファイルまたは Visual Basic WPF プロジェクトの Application.xaml ファイル) でアプリケーション リソースを設定する方法を示しています。
// Set an application-scope resource
Application.Current.Resources["ApplicationScopeResource"] = Brushes.White;
' Set an application-scope resource
Application.Current.Resources("ApplicationScopeResource") = Brushes.White
<Application
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="SDKSample.App"
StartupUri="MainWindow.xaml"
Startup="App_Startup"
Exit="App_Exit">
<Application.Resources>
<SolidColorBrush x:Key="ApplicationScopeResource" Color="White"></SolidColorBrush>
</Application.Resources>
</Application>
次の例は、コードでアプリケーション リソースを取得する方法を示しています。
// Get an application-scope resource
Brush whiteBrush = (Brush)Application.Current.Resources["ApplicationScopeResource"];
' Get an application-scope resource
Dim whiteBrush As Brush = CType(Application.Current.Resources("ApplicationScopeResource"), Brush)
注釈
このプロパティを Resources 使用して、アプリケーションのウィンドウと要素全体でリソースを共有できます。 さらに、 Resources このプロパティはリソース参照パスに含まれており、次の順序で走査されます。
要素
Windows
システム
そのため、ユーザー インターフェイス (UI) 要素は、アプリケーション スコープのリソースにバインドできます。 さらに、リソースが変更された場合、リソース システムは、それらのリソースにバインドされている要素プロパティが、変更を反映するように自動的に更新されるようにします。
アプリケーション スコープ リソースは、アプリケーション全体で一貫したテーマをサポートする簡単な方法を提供します。 タグを使用すると、XAML でテーマを簡単に Application.Resources
作成できます。 ただし、多数のテーマ要素を含む複数のテーマがアプリケーションでサポートされている場合は、テーマごとに 1 つの ResourceDictionary インスタンスを使用して管理する方が簡単な場合があります。 このようにして、Resources プロパティを適切な ResourceDictionaryテーマに設定することで、新しいテーマを適用できます。
Resources を使用するときに注意する点が 2 つあります。 まず、ディクショナリ キー はオブジェクトであるため、プロパティ値の設定と取得の両方でまったく同じオブジェクト インスタンスを使用する必要があります (文字列を使用する場合、キーでは大文字と小文字が区別されることに注意してください)。 次に、ディクショナリ 値 はオブジェクトであるため、プロパティ値を取得するときに値を目的の型に変換する必要があります。
Resources はスレッド セーフであり、任意のスレッドから使用できます。