我制作了一个自定义控件库,并在根路径中制作了一个名为“FlipView”的控件。然后我删除了样式并将其移动到根路径中Generic.xaml
命名的自己的资源字典中。FlipView.xaml
现在我将该资源字典合并为Generic.xaml
使用以下代码:
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/FlipView.xaml" />
</ResourceDictionary.MergedDictionaries>
然后我在另一个wpf项目中使用了该控件,但它抛出了XamlParseException
一个InnerException
说
找不到资源“flipview.xaml”。
为什么不能呢?资源字典位于控件库项目的根路径中。
如果我用(是我的自定义控件库的名称)替换Source
属性设置器,它工作得很好。"pack://application:,,,/MyCustomControls;component/FlipView.xaml"
MyCustomControls
通用的.xaml:
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/MyCustomControls;component/FlipView.xaml" />
</ResourceDictionary.MergedDictionaries>
为什么会这样?
对于 WPF 项目,这似乎是多余的,因为它pack://application,,,/
指的是根路径,WpfAssemblyName;component/
又指的是根路径。为什么有必要Generic.xaml
?
编辑:我见过这个问题,但它没有解释为什么。