アプリケーション リソースを使用する方法 (WPF .NET)

この例では、アプリケーションが定義するリソースを使用する方法について説明します。 リソースはアプリケーション レベルで定義できます。App.xaml または Application.xaml ファイルが一般的に利用されますが、それはプロジェクト ファイルで使用されているものになります。 アプリケーションによって定義されるリソースはグローバルにスコープが設定され、アプリケーションのあらゆる部分でアクセスできます。

重要

.NET 5 (および .NET Core) 用のデスクトップ ガイド ドキュメントは作成中です。

次の例は、アプリケーション定義ファイルを示しています。 アプリケーション定義ファイルでは、リソース セクション (Resources プロパティの値) を定義します。 アプリケーション レベルで定義されているリソースには、そのアプリケーションの一部であるその他すべてのページからアクセスできます。 この例では、リソースは宣言済みのスタイルです。 コントロール テンプレートを含む完全なスタイルは長くなる場合があるため、この例では、スタイルの ContentTemplate プロパティ セッターで定義されているコントロール テンプレートは省略されています。

<Application.Resources>
    <Style TargetType="Border" x:Key="FancyBorder">
        <Setter Property="Background" Value="#4E1A3D" />
        <Setter Property="BorderThickness" Value="5" />
        <Setter Property="BorderBrush">
            <Setter.Value>
                <LinearGradientBrush>
                    <GradientStop Offset="0.0" Color="#4E1A3D"/>
                    <GradientStop Offset="1.0" Color="Salmon"/>
                </LinearGradientBrush>
            </Setter.Value>
        </Setter>
    </Style>
</Application.Resources>

次の例では、前の例からのアプリケーションレベル リソースを参照する XAML ページを確認できます。 リソースは、リソースの一意のリソース キーを指定する StaticResource マークアップ拡張によって参照されます。 現在のオブジェクトとウィンドウのスコープでは、リソース "FancyBorder" が見つかりません。そのため、リソース参照は、現在のページを超え、アプリケーションレベルのリソースまで続行されます。

<Border Style="{StaticResource FancyBorder}">
    <StackPanel Margin="5">
        <Button>Button 1</Button>
        <Button>Button 2</Button>
        <Button>Button 3</Button>
        <Button>Button 4</Button>
    </StackPanel>
</Border>

関連項目