当我创建一个新的 WPF 项目时,我可以在添加新项目窗口中找到 ResourceDictionary。但我有另一个项目我找不到,我不知道为什么。
更新: 该项目最初是为.net 3.5 的,但现在它也有一个为.net 4.0 的版本。这意味着同一个项目有两个 .sln 文件(一个用于 3.5,另一个用于 4.0)。
当我创建一个新的 WPF 项目时,我可以在添加新项目窗口中找到 ResourceDictionary。但我有另一个项目我找不到,我不知道为什么。
更新: 该项目最初是为.net 3.5 的,但现在它也有一个为.net 4.0 的版本。这意味着同一个项目有两个 .sln 文件(一个用于 3.5,另一个用于 4.0)。
将以下行添加到 Project.csproj
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
它应该是标签的子<PropertyGroup>
标签,如下所示:
<Project> <PropertyGroup> .... <ProjectTypeGuids>{guids};{go};{here}</ProjectTypeGuids> ... </PropertyGroup> ... </Project>
这篇文章很好地解释了为什么这样做。
首先,我希望您意识到这不应该阻止您,因为您可以轻松地将所需的任何文件添加到项目中,无论是从您的文件系统中,还是从另一个项目中复制它。添加新项目窗口只是为了方便。
其次,当您将新项目添加到您的解决方案中时,您选择了哪个项目模板?项目模板确定项目具有的初始引用程序集集。WPF 项目引用 WPF 库(WindowsBase、PresentationCore 等)。
Visual Studio 使用您引用的程序集来生成您在“添加新项”对话框中看到的可能项。
所以我假设您添加了一些其他类型的项目,例如基本类库。您可以使用“添加引用”对话框手动添加对 WPF 程序集的引用。或者您可以将项目重新创建为 WPF 自定义控件库。
关闭项目。创建一个新项目,该项目属于您将使用的 WPF 项目类型(或使用现有项目)。然后在文本编辑器中打开 WPF 项目的 .csproj 文件。找到ProjectTypeGuids
元素。
在记事本中打开现有的 .csproj 文件。看看有没有ProjectTypeGuids
元素。如果是这样,请将来自 WPF 项目的 GUID(不带ProjectTypeGuids
)附加到现有项目中。如果现有的 .csproj 文件中没有ProjectTypeGuids
元素,请从 WPF 项目中复制ProjectTypeGuids
GUID 并将其粘贴到现有项目的第一个PropertyGroup
元素中。
在 Visual Studio 中重新加载您的项目。您现在应该能够添加所有 WPF 文件类型。
我相信每个人的 GUIDS 都是相同的,所以您需要的值应该是:{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
...这应该可以为您节省创建新项目的步骤。
因此,如果您有一个类库项目,只需添加
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
到 .csproj 文件中的第一个PropertyGroup
元素。