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

Dav*_*man 14 wpf resources background window colors

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

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

<Window.Background>
    <SolidColorBrush Color="{StaticResource WindowBackgroundBrush}"  />
</Window.Background>
Run Code Online (Sandbox Code Playgroud)

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

Mua*_*Dib 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>
Run Code Online (Sandbox Code Playgroud)

这里要注意的主要是窗口中的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>
Run Code Online (Sandbox Code Playgroud)

作为旁注,如果要为应用程序使用主题,则应查看组件资源键


Tom*_*eld 18

试试这个

<Window.Background>
    <StaticResource ResourceKey="WindowBackgroundBrush" />
</Window.Background>
Run Code Online (Sandbox Code Playgroud)