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 pomocą pliku App.xaml lub Application.xaml, niezależnie od tego, którego używa projekt. Zasoby zdefiniowane przez aplikację są globalnie ograniczone i dostępne we wszystkich częściach aplikacji.

Ważne

Dokumentacja przewodnika dla komputerów dla platform .NET 7 i .NET 6 jest w budowie.

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ż kompletny styl zawierający szablon kontrolki może być długi, w tym przykładzie pominięto szablon kontrolki zdefiniowany w ContentTemplate module ustawiania właściwości w 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. Do zasobu odwołuje się rozszerzenie znaczników StaticResource, które określa unikatowy klucz zasobu dla zasobu. 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ż