2015-12-08 2 views
1

Я создал библиотеку, которая имеет Popup UserControl similar to the one here.XamlParseException при использовании UserControl из библиотеки классов dll

Когда я создаю новое универсальное приложение для Windows и создаю тот же UserControl внутри приложения и открываю всплывающее окно, он открывается.

Но если я создам библиотеку классов и создаю в нем тот же UserControl и попытаюсь использовать его (открыв всплывающее окно) внутри приложения, я получаю исключение XamlParseException.

Это выглядит следующим образом -

Windows.UI.Xaml.Markup.XamlParseException произошло
HResult = -2144665590
Message = XAML разборе не удалось.
Source = Окна
StackTrace:
на Windows.UI.Xaml.Application.LoadComponent (компонент Object, Uri resourceLocator, ComponentResourceLocation componentResourceLocation)
в PopupTestLibrary.MyUserControl1.InitializeComponent()

Я неспособный точно понять, почему это происходит, поскольку код отлично работает, когда не вызывается из внешней библиотеки классов.

Некоторые вопросы, которые я нашел, чтобы быть похожими на мои, здесь на SO -

XamlParseException when consuming a Page from a library

Cannot instantiate UserControl from another assembly

Все помощь ценится!

ответ

0

Вы должны добавить словарь ресурсов в вашем приложении и добавьте контент UserControl Xaml к нему

, как Xaml рассматривается как содержимое файла не компилируется в код

+0

Не могли бы вы рассказать подробнее? – kshitijgandhi

+1

Когда вы компилируете dll с файлом xaml в нем, он конвертируется в файлы xbf, эти файлы также должны быть скопированы в каталог bin вашего приложения с относительным путем. – ZeeMoussa

+1

Проверьте папку bin при компиляции вашей DLL, вы получите то, что я mean – ZeeMoussa

1

Я думаю, что этот пост просто как у вас ..:

https://social.msdn.microsoft.com/Forums/en-US/63f071be-a3c5-4f2d-ace2-73ca750e3252/rtm-usercontrol-class-library-and-assembly-name-with-

И, Это известная проблема:

Dot in the project's name cause XAMLParseException

Я надеюсь, что это поможет вам в вашей проблеме.

+0

Название моей библиотеки - «PopupTestLibrary». Он не содержит точки ".". И эта ошибка была для Visual Studio 2012 AFAIK. – kshitijgandhi