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

问题描述 投票:15回答:3

当我创建一个新的WPF项目时,我可以在“添加新项”窗口中找到ResourceDictionary。但是我有另一个项目,我找不到,也不知道为什么。“仅UserControl,但没有ResourceDictionary”

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

wpf wpf-controls resourcedictionary
3个回答
4
投票

首先,我希望您意识到这不会阻止您,因为您可以轻松地将所需的任何文件添加到项目中,无论是从文件系统还是从另一个项目复制它。 “添加新项”窗口只是为了方便。

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

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

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


34
投票

将以下行添加到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很好地解释了为什么这样做。


0
投票

关闭项目。创建一个您将要使用(或使用现有的)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元素。

© www.soinside.com 2019 - 2024. All rights reserved.