Похоже, ваше пространство имен по умолчанию испорчено или отсутствует. Без xaml трудно сказать, что вы должны делать.
Простой способ выяснить это для себя - создать новый UserControl, затем исследовать и сравнить пространства имен xmlns, определенные в его корне, с корневым элементом вашего View.
WPF находит типы по определению специализированного пространства имен. Следует формат
clr-namespace: [namespace] (; Assembly = [Имя сборки])
, где
[имена]
- это пространство имен, которое содержит определение типа. И, если тип определен в сборке, отличной от той, в которой находится файл xaml, вы должны включить деталь во вступление. [assembly name]
- это имя сборки без расширения .dll (например, assembly=mscorlib
будет импортировать mscorlib.dll
). Чтобы импортировать тип Int32 и использовать его в вашем xaml, вам нужно определить пространство имен
xmlns:s="clr-namespace:System;assembly=mscorlib"
Также существует атрибут уровня сборки , который позволяет назначить другое пространство имен для всех типов в сборке . Как правило, это принимает форму URL. По традиции, а не по необходимости, IIRC. Вот почему некоторые элементы управления отождествляются с более традиционным пространством имен, таким как
XMLNS = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"