我在我的WPF应用程序中合并了2个词典(基本词典与皮肤词典合并)。 它在MainWindow上工作得非常好,但是当我添加一个新的WPF窗口时,它似乎无法访问StaticResource。
这是新窗口的代码:
<Window x:Class="Sc2ReplayMonkey.PleaseWaitWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:scm="clr-namespace:System.ComponentModel;assembly=WindowsBase"
xmlns:local="clr-namespace:Sc2ReplayMonkey"
Title="PleaseWaitWindow" Height="300" Width="300">
<Grid Style="{StaticResource WindowBackground}">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBlock Style="{StaticResource WindowTextelement}" Grid.Row="0" HorizontalAlignment="Center" VerticalAlignment="Center">
Please wait while the replays
</TextBlock>
<TextBlock Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Center">
are parsed and serialized
</TextBlock>
</Grid>
</Window>
我收到错误“无法找到名为”WindowBackground“的资源”。 它在皮肤词典中被定义为:
<Style x:Key="WindowBackground" TargetType="{x:Type Grid}">
<Setter Property="Background" Value="Black" />
</Style>
我错过了什么?
答案 0 :(得分:0)
我认为你需要添加
Resources.MergedDictionaries.Add(resources);
在您的App.cs类中,一次是在Initialize()方法中。然后可以从任何窗口访问您的字典。
答案 1 :(得分:0)
这解决了这个问题,我只是在PleaseWaitWindow的构造函数中添加了一行:Resources = main.Resources;主要是MainWindow