使用资源设置窗口背景颜色

时间:2010-01-20 14:02:23

标签: wpf resources colors background window

我需要使用资源来设置WPF应用程序中主窗口的颜色。由于资源声明在窗口声明之后(我导入资源字典),我不能在Background对象中使用Window属性。所以,我以为我会这样设置背景:

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

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

我的语法有点偏,因为该对象不会为其Color属性获取画笔资源。有什么问题?谢谢你的帮助。

3 个答案:

答案 0 :(得分:19)

这有效:

<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和Background属性中的DynamicResource

另外,这也有效......

  <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>

作为旁注,如果你想为你的应用程序使用主题,你应该看看component resource keys

答案 1 :(得分:18)

试试这个

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

答案 2 :(得分:0)

解决方案是将您的资源放在App.xaml中。这样你就可以毫无问题地在你的窗口上设置背景。