Udostępnij za pośrednictwem


Jak używać zasobów aplikacji (WPF .NET)

W tym przykładzie pokazano, jak używać zasobów zdefiniowanych przez aplikację. Zasoby można definiować na poziomie aplikacji, zazwyczaj za pośrednictwem App.xaml lub Application.xaml pliku, niezależnie od tego, którego używa projekt. Zasoby zdefiniowane przez aplikację mają zasięg globalny i są dostępne we wszystkich częściach aplikacji.

Przykład

W poniższym przykładzie przedstawiono plik definicji aplikacji. Plik definicji aplikacji definiuje sekcję zasobu (wartość właściwości Resources). Zasoby zdefiniowane na poziomie aplikacji mogą być dostępne dla wszystkich innych stron, które są częścią aplikacji. W takim przypadku zasób jest zadeklarowanym stylem. Ponieważ pełny styl zawierający szablon kontrolki może być długi, w tym przykładzie pominięto szablon kontrolki zdefiniowany w ContentTemplate ustawieniu właściwości stylu.

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

Poniższy przykład przedstawia stronę XAML, która odwołuje się do zasobu na poziomie aplikacji z poprzedniego przykładu. Zasób jest odwoływany przez StaticResource Markup Extension, który określa jego unikatowy klucz. Zasób "FancyBorder" nie znajduje się w zakresie bieżącego obiektu i okna, więc wyszukiwanie zasobów będzie kontynuowane poza bieżącą stroną i zasobami na poziomie aplikacji.

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

Zobacz też