Использование ресурсов приложений (WPF .NET)

В этом примере показано, как использовать определяемые приложением ресурсы. Ресурсы можно определить на уровне приложения, как правило, с помощью файла App.xaml или Application.xaml , независимо от того, какой используется проект. Ресурсы, определенные приложением, глобально область и доступны всем частям приложения.

Важно!

Документация по рабочему столу для .NET 7 и .NET 6 находится в стадии разработки.

Пример

В приведенном ниже примере показан файл определения приложения. Файл определения приложения определяет раздел ресурсов (значение свойства 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, которая ссылается на ресурс уровня приложения из предыдущего примера. Ресурс ссылается на расширение Markup 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>

См. также