Ответ 1
Попробуйте это
<Window.Background>
<StaticResource ResourceKey="WindowBackgroundBrush" />
</Window.Background>
Мне нужно использовать ресурс, чтобы установить цвет основного окна в моем приложении WPF. Поскольку объявление ресурса появляется после объявления окна (я импортирую словарь ресурсов), я не могу использовать свойство Background
в объекте Window
. Итак, я думал, что создам фоновый рисунок следующим образом:
<Window.Resources>
...
</Window.Resources>
<Window.Background>
<SolidColorBrush Color="{StaticResource WindowBackgroundBrush}" />
</Window.Background>
Мой синтаксис немного выключен, так как объект не будет использовать ресурс кисти для свойства Color. Какое исправление? Благодарим за помощь.
Попробуйте это
<Window.Background>
<StaticResource ResourceKey="WindowBackgroundBrush" />
</Window.Background>
это работает:
<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>
В качестве побочного примечания, если вы хотите использовать приложение для своего приложения, вы должны изучить ключи ресурсов компонента
Решение состоит в том, чтобы поместить ваши ресурсы в App.xaml. Таким образом вы можете без проблем установить фон в своем окне.