Не удается найти ResourceDictionary в окне добавления нового элемента

Когда я создаю новый проект WPF, я могу найти ResourceDictionary в окне "Добавить новый элемент". Но у меня есть другой проект, который я не могу найти, и я не знаю, почему. Only UserControl but no ResourceDictionary

UPDATE: Первоначально проект был для .net 3.5, но теперь он также имеет версию для .net 4.0. Это означает, что для одного и того же проекта есть два файла .sln(один для 3.5, а другой для 4.0).

Ответ 1

Прежде всего, надеюсь, вы поймете, что это не должно вас останавливать, так как вы можете легко добавить любой файл, который хотите в проект, либо из вашей файловой системы, либо путем копирования из другого проекта. Окно "Добавить новый элемент" предназначено только для удобства.

Во-вторых, когда вы добавили новый проект в свое решение, какой шаблон проекта вы выбрали? Шаблон проекта определяет исходный набор ссылочных сборок, которые имеет проект. Проект WPF делает ссылки на библиотеки WPF (WindowsBase, PresentationCore и т.д.).

Visual Studio использует ваши ссылочные сборки для создания возможных элементов, которые вы видите в диалоговом окне "Добавить новые элементы".

Итак, я предполагаю, что вы добавили другой проект, например базовую библиотеку классов. Вы можете вручную добавить ссылки на сборки WPF, используя диалог Добавить ссылку. Или вы можете воссоздать проект как пользовательскую библиотеку WPF.

Ответ 2

Добавьте следующую строку в Project.csproj

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

Он должен быть дочерним элементом тега <PropertyGroup>, например:

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

Этот пост хорошо объясняет, почему это работает.