Пользовательское XmlnsDefinition с Blend - PullRequest
2 голосов
/ 20 августа 2009

В моем проекте есть сборка, которая определяет набор элементов управления WPF. Я хочу иметь возможность использовать их без явной ссылки на сборку в коде XAML. Вот почему я использую пользовательское XmlnsDefinition:

[assembly: XmlnsDefinition(
    "http://schemas.microsoft.com/winfx/2006/xaml/presentation",
    "MyProject.Common.WpfLibrary.Markup")]
[assembly: XmlnsDefinition(
    "http://schemas.microsoft.com/winfx/2007/xaml/presentation",
    "MyProject.Common.WpfLibrary.Markup")]
[assembly: XmlnsDefinition(
    "http://schemas.microsoft.com/winfx/2008/xaml/presentation",
    "MyProject.Common.WpfLibrary.Markup")]

Это работает как шарм в VS2008. Я могу напрямую использовать элементы управления, определенные в пространстве имен разметки. Однако Blend, похоже, это не нравится, и я выдаю ошибку «Invalid XAML» везде, где я пытаюсь использовать элемент управления.

У вас есть обходной путь?

1 Ответ

1 голос
/ 11 января 2010

XmlnsDefinitionAttribute следует использовать только один раз для каждого пространства имен CLR в сборке. Используйте XmlnsCompatibleWithAttribute для 2-го и 3-го назначения.

...