Dot-Net
pack://application:,,,/ResourceFile.xaml 從不工作
我從來沒有能夠讓這種引用格式的資源字典起作用。我錯過了什麼。
設想:
在其中創建和組裝一些使用者控制項。
在根目錄下,文件**{root}/Themes/ColorThemes.xaml**
ColorThemes.xaml 文件的建構操作設置為Resource。
然後在 xaml 文件中再往下說**{root}/Controls/ButtonStyles/Themes/ButtonThemes.xaml**(注意路徑只是一個例子)在這個文件中我有以下程式碼:
<ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="pack://application:,,,/Themes/ColorThemes.xaml"/> </ResourceDictionary.MergedDictionaries>據文件所述,這應該可以工作(據我所知),當我在設計器中時,它似乎很好(所有顏色都載入等)但是當我去編譯我的應用程序並執行它時,我得到了這個錯誤{“無法找到資源’themes/colorthemes.xaml’。”}這很奇怪,因為它似乎在建構器中使用得很好。所以我很困惑,因為它似乎與文件不一致。
所以如果有人可以向我解釋我錯過了什麼:)注意:如果我將以前的程式碼更改為
<ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="../../../Themes/ColorThemes.xaml"/> </ResourceDictionary.MergedDictionaries>它工作正常,但是對於 cleanese pack://application: 。
嘗試:
pack://application:,,,/YOURNAMESPACEHERE/ColorThemes.xaml例如
pack://application:,,,/Themes/ColorThemes.xaml
無法重現您的問題。所有這些變化都可以正常工作:
<ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="pack://application:,,,/Themes/ColorThemes.xaml"/> <ResourceDictionary Source="/Themes/ColorThemes.xaml"/> <ResourceDictionary Source="../../Themes/ColorThemes.xaml"/> </ResourceDictionary.MergedDictionaries>請注意,這
pack://application:,,,是可選的,/指的是目前程序集的根。請提供完整的最小範例來重現您的問題。