考慮文件|爲什麼Generic.xaml中的合併字典需要絕對uri?
- 命名CustomControl1 名爲Dictionary1和Dictionary2
- 兩個新的資源字典新的自定義控制
就拿產生的樣式當中Generic.xaml和移動它:包含一個WPF應用程序的新項目到Dictionary2。然後合併成Dictionary2和Dictionary1到Dictionary1一般是這樣的:
<!--Generic.xaml-->
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/Themes/Dictionary1.xaml"/>
</ResourceDictionary.MergedDictionaries>
<!--Dictionary1.xaml-->
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Dictionary2.xaml"/>
</ResourceDictionary.MergedDictionaries>
然後,添加CustomControl1的實例到主窗口的網格。 (這個部分是重現問題所必需的,項目總是編譯得很好 - 只是在運行時纔會出現問題,並且必須參考字典。)
在Dictionary1.xaml中,我正在合併另一個字典文件夾,所以一個簡單的Source =「Dictionary2.xaml」就起作用。然而在Generic.xaml中,我必須使用絕對URI。如果我將上面的內容更改爲Source =「Dictionary1.xaml」,而沒有使用pack://應用程序東西,那麼當它嘗試構造MainWindow時,我得到由IOException導致的XamlParseException「Can not locate resource'dictionary1.xaml'」。
我的問題:關於相對URI解析的generic.xaml有什麼特別之處?爲什麼?