Подтвердить что ты не робот

Настройка фона фона фона с использованием ресурса

Мне нужно использовать ресурс, чтобы установить цвет основного окна в моем приложении WPF. Поскольку объявление ресурса появляется после объявления окна (я импортирую словарь ресурсов), я не могу использовать свойство Background в объекте Window. Итак, я думал, что создам фоновый рисунок следующим образом:

<Window.Resources>
...
</Window.Resources>

<Window.Background>
    <SolidColorBrush Color="{StaticResource WindowBackgroundBrush}"  />
</Window.Background>

Мой синтаксис немного выключен, так как объект не будет использовать ресурс кисти для свойства Color. Какое исправление? Благодарим за помощь.

4b9b3361

Ответ 1

Попробуйте это

<Window.Background>
    <StaticResource ResourceKey="WindowBackgroundBrush" />
</Window.Background>

Ответ 2

это работает:

<Window x:Class="Moria.Net.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" 
        x:Name="window"
        Background="{DynamicResource WindowBrush}"
        Width="800" Height="600">
    <Window.Resources>
        <SolidColorBrush x:Key="WindowBrush" Color="LightGray"/>
    </Window.Resources>
</Window>

главное здесь отметить x: имя в окне, а DynamicResource в свойстве Background

альтернативно, это тоже работает.

  <Window.Resources>
        <SolidColorBrush x:Key="WindowBrush" Color="LightGray"/>
    </Window.Resources>
    <Window.Style>
        <Style TargetType="{x:Type Window}">
            <Setter Property="Background" Value="{StaticResource WindowBrush}"/>
        </Style>
    </Window.Style>

В качестве побочного примечания, если вы хотите использовать приложение для своего приложения, вы должны изучить ключи ресурсов компонента

Ответ 3

Решение состоит в том, чтобы поместить ваши ресурсы в App.xaml. Таким образом вы можете без проблем установить фон в своем окне.