我有一個畫筆,它是合併到Application.Resources
的ResourceDictionary
的一部分。WPF資源合併到Application.Resources但未在運行時解決
但由於某種原因,它在運行時未在樣式應用於某個控件時解決。但是,如果在拋出異常時從立即窗口調用Application.Current.FindResource(「BrushName」),則會找到該資源。
我錯過了什麼嗎? WPF是不是應該試圖在應用程序資源中尋找資源?
UPDATE 的應用是相當大的,所以我不能發佈的所有實際的代碼,但這裏的資源被合併和使用方式:
Brushes.xaml
<ResourceDictionary ...>
<SolidColorBrush x:Key="BrushName" Color="#12345678" />
</ResourceDictionary>
SomeStyles.xaml
<ResourceDictionary ...>
<Style x:Key="SomeStyle">
<Setter Property="SomeProperty" Value="{StaticResource BrushName}" />
</Style>
</ResourceDictionary>
App.xaml
<Application ...>
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Brushes.xaml" />
<ResourceDictionary Source="SomeStyles.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application ...>
然後一些控制可能使用使用資源這樣的風格:它似乎發生在菜單和在代碼中創建控件
...
Style={StaticResource SomeStyle}
...
UPDATE
。它可能與這些控件和菜單不是任何窗口的可視化樹的一部分有關嗎?
你可以發表一些你如何合併字典的代碼。 – 2010-03-30 08:27:35
我已經在這裏複製了你的示例,它爲我構建並正確運行,看起來問題在於代碼中的其他位置。 – 2010-03-30 09:14:13
任何運氣得到這個答案? – 2011-08-30 09:50:14