我需要使用资源来设置WPF应用程序中主窗口的颜色。由于资源声明在窗口声明之后(我导入资源字典),我不能在Background
对象中使用Window
属性。所以,我以为我会这样设置背景:
<Window.Resources>
...
</Window.Resources>
<Window.Background>
<SolidColorBrush Color="{StaticResource WindowBackgroundBrush}" />
</Window.Background>
我的语法有点偏,因为该对象不会为其Color属性获取画笔资源。有什么问题?谢谢你的帮助。
答案 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中。这样你就可以毫无问题地在你的窗口上设置背景。