XAML是否可以在Visual Studio中使用文件链接?

问题描述:

我将一个新的WPF项目添加到现有的Visual Studio解决方案中,并希望重用解决方案中现有项目的一堆代码(C#和xaml)。XAML是否可以在Visual Studio中使用文件链接?

我创建了新的项目和增加现有文件如下:

  • 右键单击项目
  • 添加 - >添加现有项
  • 查找重用文件,使用旁边的箭头“添加”和“添加为链接”

我现在有一个很好的项目,并设置了所有正确的链接。但是,XAML扼杀这些链接。例如:

<ResourceDictionary.MergedDictionaries> 
     <ResourceDictionary 
      Source="Resources\Elements\Buttons\Buttons.xaml" /> 
     <ResourceDictionary 
      Source="Resources\Elements\TextBox\TextBox.xaml" /> 
</ResourceDictionary.MergedDictionaries> 

文件“Buttons.xaml”和“TextBox.xaml”作为我的新项目中的链接而存在。该项目建立,但当我跑,我得到以下XamlParseException:

“资源\元素\按键\ Buttons.xaml” 值不能分配财产 “源”对象 “System.Windows .ResourceDictionary”。 找不到资源 'resources/elements/buttons/buttons.xaml'。

看起来好像XAML解析器需要这些XAML文件的实际副本存在于我的新项目中,而不是链接。

这正是我想要避免的。我希望我的项目能够共享这些文件,以便在没有搜索和复制的情况下将所有更改转移到其他项目。

任何见识都被赞赏!

如您注意到的,链接到外部XAML文件不会创建链接存在于项目结构中的文件。

我的建议是在MergedDictionaries引用中使用相对链接。如果在另一个项目中重用XAML被称为通用,第一嵌套资源字典的来源属性可能是:

.. \ COMMON \资源\元素\文本框\ TextBox.xaml

这实际上是路径您用来添加现有项目。