在“添加新项目窗口”中找不到ResourceDictionary

时间:2012-09-24 02:16:05

标签: wpf wpf-controls resourcedictionary

当我创建一个新的WPF项目时,我可以在Add New Item Window中找到ResourceDictionary。 但我还有另外一个项目我无法找到,而且我不知道为什么。 Only UserControl but no ResourceDictionary

更新: 该项目最初是针对.net 3.5的,但现在它还有.net 4.0的版本。这意味着同一个项目中有两个.sln文件(一个用于3.5,另一个用于4.0)。

3 个答案:

答案 0 :(得分:29)

将以下行添加到Project.csproj

    <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

它应该是<PropertyGroup>标记的子代,如下所示:

    <Project>
      <PropertyGroup>
        ....
        <ProjectTypeGuids>{guids};{go};{here}</ProjectTypeGuids>
        ...
      </PropertyGroup>
    ...
    </Project>

This post很好地解释了为什么会有效。

答案 1 :(得分:4)

首先,我希望您意识到这不应该阻止您,因为您可以从文件系统或从其他项目复制项目,轻松地将任何文件添加到项目中。 “添加新项”窗口只是为了方便起见。

其次,当您将新项目添加到解决方案中时,您选择了哪个项目模板?项目模板确定项目具有的初始引用程序集。 WPF项目引用了WPF库(WindowsBase,PresentationCore等)。

Visual Studio使用引用的程序集生成您在“添加新项”对话框中看到的可能项。

所以我假设你添加了一些其他类型的项目,比如基本的类库。您可以使用“添加引用”对话框手动添加对WPF程序集的引用。或者您可以将项目重新创建为WPF自定义控件库。

答案 2 :(得分:0)

关闭项目。创建一个您将要使用(或使用现有的)WPF项目类型的新项目。然后在文本编辑器中打开WPF项目的.csproj文件。找到ProjectTypeGuids元素。

在记事本中打开您现有的.csproj文件。查看它是否具有ProjectTypeGuids元素。如果是这样,请在现有项目中从WPF项目附加GUID(不添加ProjectTypeGuids)。如果您现有的.csproj文件中没有ProjectTypeGuids元素,请从WPF项目中复制ProjectTypeGuids和GUID,然后将其粘贴到现有项目的第一个PropertyGroup元素中。 / p>

在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元素。