我正在尝试将WPF ResourceDictionary添加到刚刚创建的C#项目中。该项目最初不是WPF项目,但现在我需要在其中包含一些WPF资源。
当我右键单击项目并选择“添加”时,ResourceDictionary不是一个选项。即使我打开模态对话框并导航到ResourceDictionary类型应该在的位置(与其他WPF类型一起),它也不存在。
另外,当我手动将具有ResourceDictionary语法的XAML文件添加到项目中时,我无法使用WPF Application.Load(uri)语法以编程方式加载它,所以我觉得VS2010阻止我添加文件原因。
如何让我的项目“能够”添加ResourceDictionary而无需从头开始重新创建整个项目作为WPF项目并从头开始重新添加每个文件?
此外,什么定义了可以添加到项目中的文件类型,以便将来可以避免类似的问题?希望它像我需要添加到AssemblyInfo.cs文件中的一行一样简单。
答案 0 :(得分:38)
关闭项目。创建一个您将使用的WPF项目类型的新项目。然后在记事本中打开新的.csproj文件。找到ProjectTypeGuids
元素。将这些GUID复制到剪贴板。在记事本中打开现有的.csproj文件。将这些GUID附加到此文件的ProjectTypeGuids
元素中。 (检查欺骗。)在Visual Studio中重新加载项目。您现在应该能够添加所有WPF文件类型。
PS:我没有专门针对WPF做过这个,但我有其他项目类型,并且没有问题。
我相信GUIDS对每个人都是一样的,所以你需要的值应该是:{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
...这可以为你节省创建一个新项目的步骤。
答案 1 :(得分:2)
我认为最好的办法是创建一个新的WPF项目并复制所有内容。如果它是一个非常大的项目(并且你有冒险精神),你可以打开项目文件的XML(卸载项目,然后用XML编辑原始的csproj文件)
然后复制ItemGroup
部分,并确保新项目目录下存在相应的源文件。祝你好运!
答案 2 :(得分:0)
尝试创建一个空白的WPF项目,然后将.csproj文件(它们只是简单的XML)与该项目和项目区分开以查看它们之间的差异 - 除了文件列表和奇怪的编译器设置之外,你可能会很好查找标识项目类型的GUID或其他条目,您可以将其复制/粘贴到“升级”项目中(当然,在备份现有项目文件之后!)
或者,您可以在csproj文件之间复制并粘贴文件/文件夹XML(小心)以快速“从头开始重建整个项目”,因此不必担心这样做。