Подтвердить что ты не робот

Тип "Окно" не поддерживает прямой контент

У меня есть WPF-решение, построенное на VS 2015, состоящее из нескольких проектов. Внезапно я начал получать предупреждение в режиме проектирования, указав следующее:

Тип "Окно" не поддерживает прямой контент.

Я понимаю, как некоторые элементы управления не поддерживают прямой контент, но System.Windows.Window должен. Я получаю то же предупреждение с UserControl, и, насколько я знаю, любой другой элемент управления, который обычно поддерживает прямой контент.

Все компилируется и работает отлично, но синие подчеркивания через весь мой XAML назойливы. Кто-нибудь еще сталкивался с этим?

Ниже приведен скриншот:

введите описание изображения здесь

4b9b3361

Ответ 1

Убедитесь, что вы ссылаетесь на System.Xaml. Очистите и восстановите проект. Работает над обновлением VS 2015.

Ответ 2

По крайней мере, в проекте WPF IronPython добавление ссылки System.Xaml к проекту разрешило проблему для меня:

введите описание изображения здесь

Важно отметить, что добавление, казалось бы, какой-либо ссылки, заставит проблему временно уйти - до перезапуска Visual Studio. System.Xaml, с другой стороны, похоже, что проблема не решена. Я даже попытался удалить ссылку, после чего проблема возникла при перезапуске Visual Studio.

Ответ 3

Для меня эта ошибка произошла, потому что я добавил окно WPF в проект библиотеки классов.

По какой-то причине (неизвестно мне) Visual Studio не позволяет нам выбирать шаблон WPF Window из диалогового окна "Добавить новый элемент...", если проект не был создан как приложение WPF. Вместо этого предлагается только добавить пользовательский элемент управления WPF. Из-за этого я выбрал пользовательский элемент управления для нового элемента, а затем отредактировал исходный код, чтобы XAML стал объектом Window, а не пользовательским элементом управления.

<!-- The new item was created as an UserControl, but what I needed was a Window object. -->
<UserControl>
   ...
</UserControl>

<!-- Changed it to Window and made other necessary adjustments. -->
<Window>
   ...
</Window>

Проблема была на самом деле в коде позади. Поскольку он был создан как пользовательский элемент управления, частичный класс окна наследовал от UserControl, как показано ниже:

public partial class MyWindow : UserControl
{
    public MyWindow ()
    {
        InitializeComponent();
    }
}

Чтобы это исправить, мне просто нужно было удалить наследование, чтобы мой класс окна наследовал из ничего, например:

public partial class MyWindow
{
    public MyWindow ()
    {
        InitializeComponent();
    }
}

После удаления наследования Visual Studio не отображала ошибку "Тип" Окно "не поддерживает прямой контент". больше.

Ответ 4

от имени @mark Richman Я отредактировал Itemtemplate для автоматической ссылки "System.Xaml". На всякий случай некоторые заинтересованы:

введите описание изображения здесь

можно найти в: "[VS InstallDir]\Common7\IDE\ItemTemplates\VisualBasic\WPF\[InputLocale]\WPFWindow"

BR, Daniel

Ответ 5

Добавьте после этого ясное решение System.Xaml и UIAutomationProvider к своему проекту, а затем соберите заново.