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
这实际上是路径您用来添加现有项目。