다음을 통해 공유


방법: 애플리케이션 리소스 사용(WPF .NET)

이 예제에서는 애플리케이션 정의 리소스를 사용하는 방법을 보여 줍니다. 리소스는 일반적으로 프로젝트에서 사용하는 App.xaml 또는 Application.xaml 파일을 통해 애플리케이션 수준에서 정의할 수 있습니다. 애플리케이션에서 정의한 리소스는 전역적으로 범위가 지정되고 애플리케이션의 모든 부분에서 액세스할 수 있습니다.

예시

다음 예제에서는 애플리케이션 정의 파일을 보여 줍니다. 애플리케이션 정의 파일은 리소스 섹션(Resources 속성 값)을 정의합니다. 애플리케이션 수준에 정의된 리소스는 애플리케이션의 일부인 다른 모든 페이지에 액세스할 수 있습니다. 이 경우 리소스는 선언된 스타일입니다. 컨트롤 템플릿을 포함하는 전체 스타일의 길이가 길 수 있으므로 이 예제는 스타일의 ContentTemplate 속성 setter 내에 정의된 컨트롤 템플릿을 생략합니다.

<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>

참고 항목