Настройка цвета фона окна с помощью ресурса - PullRequest
14 голосов
/ 20 января 2010

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

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

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

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

Ответы [ 3 ]

19 голосов
/ 20 января 2010

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

<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: name в окне, а 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>

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

18 голосов
/ 20 января 2010

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

<Window.Background>
    <StaticResource ResourceKey="WindowBackgroundBrush" />
</Window.Background>
0 голосов
/ 20 января 2010

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

...