Поделиться через


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

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

Пример

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

См. также