2012-10-07 24 views
0

在我的項目中,我試圖從Avalon嚮導中嵌入源代碼,但發生了一些奇怪的事情,我無法成功整合它。ResourceDictionary合併行爲

我有我的自定義控制庫下面的結構

  • 嚮導
    • 主題
      • Aero.NormalColor.xaml
      • Aero2.NormalColor.xaml
      • AeroWizardHeader.xaml
      • Generic.xaml
      • Wizard97.xaml
      • WizardAero.xaml
      • Generic.xaml
  • 主題
    • Generic.xaml

裏面我Generic.xaml我有下面的分解

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
<ResourceDictionary.MergedDictionaries> 
    <ResourceDictionary Source="CuratioCMS.Client.UI;Component/Wizard/Themes/Generic.xaml" /> 
</ResourceDictionary.MergedDictionaries> 

和嚮導/主題內/ Generic.xaml這裏是我有我的MergedDictionaries定義

<ResourceDictionary.MergedDictionaries> 
    <ResourceDictionary Source="CuratioCMS.Client.UI;Component/Wizard/Themes/Wizard97.xaml" /> 
    <ResourceDictionary Source="CuratioCMS.Client.UI;Component/Wizard/Themes/WizardAero.xaml" /> 
    <ResourceDictionary Source="CuratioCMS.Client.UI;Component/Wizard/Themes/AeroWizardHeader.xaml" /> 
</ResourceDictionary.MergedDictionaries> 

根據實施阿瓦隆裏面有Aero.NormalColor.xaml提供一個更MergedDictionary看起來像這樣

<ResourceDictionary.MergedDictionaries> 
    <ResourceDictionary Source="CuratioCMS.Client.UI;Component/Wizard/Themes/AeroWizardHeader.xaml" /> 
</ResourceDictionary.MergedDictionaries> 

我的問題是,我無法使用我自己的類我的項目中的庫作爲設計者拋出異常,它是:找不到資源'wizard/themes/curatiocms.client.ui; component/wizard/themes/wizard97.xaml'。

如果我更改了Wizard/Theme/Generic.xaml中的Path,那麼錯誤消失了,但Wizard無法提供Aero功能,甚至設計師也無法正常工作。

讓我也說,我決定有這樣的架構,因爲根據擴展WPF工具包,這是非常乾淨的方式。

任何人都可以幫助我嗎?

+0

好的我更改了CuratioCMS.Client.UI;組件/嚮導/ with /CuratioCMS.Client。用戶界面;組件/嚮導/所以我在開頭處添加/符號,但仍然無法獲得Aero效果我確定字典出現問題,因爲如果我將所有內容從嚮導文件夾中移出,它將起作用 –

回答

1

您是否嘗試過使用完整的pack URI syntax

您是否嘗試將「組件」更改爲「組件」?還要確保字典的生成操作已設置爲資源,並且您正確引用了您的CuratioCMS.Client.UI程序集。

+0

我嘗試使用Pack URI no結果更改大寫C到C沒有給出任何結果,以及通過正確引用你的意思是什麼?以及哪些資源字典設置爲資源而不是頁面?如果我編輯所有的字典建立行動資源,然後我有一個例外與BooleanToVisibilityConverter'。' –

+0

關於引用我們使用此'CuratioCMS.Client.UI;組件'的原因是爲了引導當前程序集指向引用的程序集。在包含Generic.xaml的項目中,確保CuratioCMS.Client.UI列在解決方案資源管理器中的參考下。如果所有字典都在同一個程序集中,那麼你不應該使用'CuratioCMS.Client.UI;組件' –

+0

如果你看過廣告,我不明白你的意思。擴展WPF工具包這是他們使用字典的方式。並且這也確保不會與其他程序集衝突,並且是generic.xaml在自定義用戶控件庫中,並且它也會包裝其他控件 –