我有一個Windows窗體應用程序,需要在運行時託管一個WPF控件。我有基本的託管和交互完成(使用ElementHost控件),一切正常,直到我嘗試做一些事情,需要WPF控件使用定義的一些自定義資源字典。 (WPF控件和它的所有資源字典都在同一個WPF控件庫DLL的所有定義。)從WinForms託管的WPF控件加載/使用資源字典
一旦出現這種情況,我收到了一堆錯誤,看起來像這樣:
System.Windows.ResourceDictionary Warning: 9 : Resource not found; ResourceKey='DocumentHeaderInterestStyle'
我發現有一個reference(鏈接因歸檔而死亡,this可能與最初引用的文章相同)。談論此事,但似乎文章正在接近WPF方面的事情,但我並不想對WPF控件進行更改,因爲所有工作都在獨立的WPF應用程序中。
如果要實現這一目標的唯一方法是對WPF進行更改,則可以進行這些更改(我對WPF控件庫不負責,但對同一公司也適用的人員也是如此除了讓自己的時間做出改變之外,這不是一個問題。)但是我希望能夠在WinForms方面做些事情來實現這個目標。
WPF控件庫有一個名爲「Default.xaml」項目具有以下屬性定義的資源字典文件:
生成操作:頁 複製到輸出目錄:不復制 自定義工具:的MSBuild :編譯
的獨立的WPF應用程序中有以下條目的App.xaml文件:
<ResourceDictionary x:Uid="ResourceDictionary_1">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary x:Uid="ResourceDictionary_2" Source="/SmartClient.Infrastructure;component/Themes\Default.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
好像控件庫應該已經知道如何牛逼獲得它的資源。使用Resources.MergedDictionaries.Add()似乎應該起作用,但我在哪裏獲得現有字典的實例?
如果將「關鍵」和「價值」來自呼叫添加? – 2009-02-23 21:46:43